• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Accessing static nested class with object of enclosing class

 
Greenhorn
Posts: 22
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


The commented line of code doesn't compile.
I thought it should have because static members can be accessed through objects too.
Any justifications?
 
Ranch Hand
Posts: 333
Firefox Browser Windows XP Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I think you had forgotten correct syntax i.e new Demo.Nested().b;
 
Cyril Sadasivan
Greenhorn
Posts: 22
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
yeah that's right but the point is

if a static member variable can be accessed with object of enclosing class(objectOfEnclosingClass.staticVariable),
why can't static member class be accessed with object of enclosing class(objectOfEnclosingClass.staticNestedClass)?
 
Enkita mody
Ranch Hand
Posts: 333
Firefox Browser Windows XP Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You shouldn't compare static class with static variables because it is really not.Static class is a Top level class, and Why can't you do that? because API doesn't allow that.We have to follow API.It won't work according to your desire.
 
author
Posts: 23956
142
jQuery Eclipse IDE Firefox Browser VI Editor C++ Chrome Java Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Cyril Sadasivan wrote:

The commented line of code doesn't compile.
I thought it should have because static members can be accessed through objects too.
Any justifications?



I guess it can be argued that if the first is allowed, then the second should be allowed too -- considering other cases where it is similarly allowed.

The answer to this is likely defined somewhere in the JLS, but quite frankly, I was never a fan of using an instance to get to any static component, so never looked it up.... hence, I am leaving it as an exercise to the OP...

Henry

 
Liar, liar, pants on fire! refreshing plug:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic