Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

When to use inner class?

 
abalfazl hossein
Ranch Hand
Posts: 635
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I want to know where inner classes are useful?
 
Lucky J Verma
Ranch Hand
Posts: 278
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator


Inner class is defined inside a class as name suggests.
So it might be used to define some new datatype used by any method or anything inside the class and won'nt have to be used outside the class.just like methods and variables inside a class.

I will give you an example -

Inside a class - in a method , i am doing some sorting like Collections.sort() and i need to define my comparator for me which wont be used outside that class.
So before doing sort() i define a class implementing comparator interface and used in comparator .
This inner class wont be visible outside outer class.

Class Outer{

Class myComparator implements Comparator{}

void someMethod(List a){

Collections.sort(a, new myComparator());}




}

Check out this link.It might be helpful.
http://download.oracle.com/javase/tutorial/java/javaOO/innerclasses.html
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Posts: 15207
36
Android IntelliJ IDE Java Scala Spring
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Lucky, to make the inner class really invisible outside the enclosing class, you'll have the make it private. And if it doesn't need to access member variables or non-static methods from the enclosing class, it's also a good idea to make it static. Like this:
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic