Loading lessons...
Java Inner Classes
Java Inner Classes
Java allows you to define a class inside another class. The inner class is called a nested class.
Inner class example
class OuterClass {
int x = 10;
class InnerClass {
int y = 5;
}
}
Creating an inner class object
To create an inner class object, you first create an outer class object:
OuterClass myOuter = new OuterClass();
OuterClass.InnerClass myInner = myOuter.new InnerClass();
System.out.println(myInner.y + myOuter.x); // 15
Static inner class
A static inner class can be created without an outer object:
class OuterClass {
int x = 10;
static class InnerClass {
int y = 5;
}
}
OuterClass.InnerClass myInner = new OuterClass.InnerClass();
Why use inner classes
- Group classes that are logically related.
- Keep helper classes close to where they are used.
- Access private members of the outer class.
TL;DR
- Nested classes are defined inside other classes.
- Non-static inner classes need an outer object.
- Static inner classes can be created directly.