This week's book giveaway is in the Jobs Discussion forum.
We're giving away four copies of Java Interview Guide and have Anthony DePalma on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes When to use inner class? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "When to use inner class?" Watch "When to use inner class?" New topic

When to use inner class?

abalfazl hossein
Ranch Hand

Joined: Sep 06, 2007
Posts: 635
I want to know where inner classes are useful?
Lucky J Verma
Ranch Hand

Joined: Apr 11, 2007
Posts: 278

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.
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 15101

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:

Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 8 API documentation
I agree. Here's the link:
subject: When to use inner class?
It's not a secret anymore!