Static vs. Non-Static Nested Classes in Java
Nested classes, also known as inner classes, provide a way to group related classes within a single source file. However, there are key differences between static and non-static nested classes.
Static Nested Classes
Unlike non-static nested classes, static nested classes do not have access to non-static fields or methods of the enclosing class. They are declared using the static keyword within the enclosing class.
public class OuterClass { private int x; public static class StaticNestedClass { public void doSomething() { // Cannot access 'x' as it is non-static } } }
Non-Static Nested Classes
Non-static nested classes, also called inner classes, have access to both static and non-static members of the enclosing class. They can access non-static fields and methods directly, and static members using the OuterClass.staticMember syntax.
public class OuterClass { private int x; public class NonStaticNestedClass { public void doSomething() { System.out.println(x); } } }
Key Differences
Example Usage
The above is the detailed content of What are the Key Differences between Static and Non-Static Nested Classes in Java?. For more information, please follow other related articles on the PHP Chinese website!