Packages
Related classes
Nested classes
An introduction to nested classes
- Java has provided support for nested classes since version 1.1.
- When you nest classes, the outer class must be declared public and must have the same name as the file name of the class.
- Within an outer class, you can nest inner classes and static inner classes. Since the inner classes are members of the outer class, they are sometimes called member classes.
- A class can also be nested inside a method or any other type of block. These types of classes are sometimes called local classes.
Two classes nested within another class
public class OuterClassName
{
// can contain instance variables and methods
// can contain static variables and methods
class InnerClassName
{
// can contain instance variables and methods
// can't contain static variables or methods
// can access all variables and methods of
// OuterClass
}
static class StaticInnerClassName
{
// can contain instance variables and methods
// can contain static variables and methods
// can access static data from OuterClass
// can't access instance variables or methods from OuterClass
}
}
The class files generated for the preceding class
OuterClassName.class OuterClassName$InnerClassName.class OuterClassName$StaticInnerClassName.class
A class nested within a method
public class ClassName
{
// code for the outer class
public void methodName()
{
class InnerClassName
{
// code for the inner class
}
// code for the method
}
}
The class files generated for this class
ClassName.class ClassName$InnerClassName.class