Java Inner class questions are asked to put us in confusion and it is always better to know type of inner classes and how they can access the outer class details. Reasons for using inner classes, among them:
Increased encapsulation—Consider two top-level classes, A and B, where B needs access to members of A that would otherwise be declared
More readable, maintainable code—Nesting small classes within top-level classes places the code closer to where it is used.
Static inner class
As with class methods and variables, a static nested class is associated with its outer class. And like static class methods, a static nested class cannot refer directly to instance variables or methods defined in its enclosing class — it can use them only through an object reference.
Instance inner class
Anonymous inner class
An anonymous inner class can come useful when making an instance of an object which certain "extras" such as overloading methods, without having to actually subclass a class. In below example we are using Thread using anonymous inner class.
- It is a way of logically grouping classes that are only used in one place.
- It increases encapsulation.
- Nested classes can lead to more readable and maintainable code.
Increased encapsulation—Consider two top-level classes, A and B, where B needs access to members of A that would otherwise be declared
private
. By hiding class B within class A, A's members can be declared private and B can access them. In addition, B itself can be hidden from the outside world.More readable, maintainable code—Nesting small classes within top-level classes places the code closer to where it is used.
As with class methods and variables, a static nested class is associated with its outer class. And like static class methods, a static nested class cannot refer directly to instance variables or methods defined in its enclosing class — it can use them only through an object reference.
Instance inner class
A non-static inner class has the outer class as an instance variable, which means it can only be instantiated from such an instance of the outer class:
An anonymous inner class can come useful when making an instance of an object which certain "extras" such as overloading methods, without having to actually subclass a class. In below example we are using Thread using anonymous inner class.
- Anonymous class is declared and initialized simultaneously.
- Anonymous class must extend or implement to one and only one class or interface resp.
- As anonymouse class has no name, it can be used only once.
Below example explains mainly we have 3 type of inner classes.
I am happy to find your distinguished way of writing the post. Now you make it easy for me to understand and implement the concept. Thank you for the post.
ReplyDeleteTam
www.gofastek.com
Great and Useful Article.
ReplyDeleteOnline Java Training
Online Java Training From India
Java Training
Java Training In Chennai
Java Training Institutes In Chennai
It is really a great work and the way in which u r sharing the knowledge is excellent.
ReplyDeleteThanks for helping me to understand basic java inner class concepts. As a beginner in java programming your post help me a lot.Thanks for your informative article.java training in chennai | chennai's no.1 java training in chennai
python training
ReplyDeleteangular js training
selenium trainings