Java interview questions: – Mention different types of inner classes?

Following are the different types of inner classes in Java interview questions.

Nested top-level classes-

  • If you declare a class within a class and specify the static modifier, the compiler treats the class just like any other top-level class
  • Any class outside the declaring class accesses the nested class with the declaring class name acting similarly to a package. eg, outer. Inner
  • Top-level inner classes implicitly have access only to static variables. There can also be inner interfaces. All of these are of the nested top-level variety.

Member classes –

  • Member inner classes are just like other member methods and member variables and access to the member class is restricted, just like methods and variables.
  • This means a public member class acts similarly to a nested top-level class
  • The primary difference between member classes and nested top-level classes is that member classes have access to the specific instance of the enclosing class.

Local classes-

  • Local classes are like local variables, specific to a block of code. Their visibility is only within the block of their declaration. In order for the class to be useful beyond the declaration block, it would need to implement a more publicly available interface.
  • Because local classes are not members, the modifiers public, protected, private, and static are not usable.

Anonymous classes-

  • Anonymous inner classes extend local inner classes one level further. As anonymous classes have no name, you cannot provide a constructor
  • Anonymous class is a class defined inside a method without a name and is instantiated and declared in the same place and cannot have explicit constructors

See the following video on Java – Introduction to Hibernate and it concepts: –


Click for more Java interview questions

Regards,

Visit for more author’s blog on Java interview questions

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s