Static Nested classes are inner classes which are declared inside another class and also declared with static keyword. The main difference between inner class and static nested classes is that inner classes are non-static and static nested classes are static. Also known as static classes.
- Static nested classes can be accessed using the enclosing class name.
- It can access static data members of outer class including private.
- static nested class cannot access non-static (instance) data member on method.
- static nested class can access static data member of another nested class within the outer class.
- By making a nested classes can be static, you can use the nested class without having an instance of the outer class.
Lets look at the simple example.
StaticClassExample.java
package javabeat.net.core; /** * Static Nested Class Example * * @author Krishna * */ public class StaticClassExample { static int i = 10; public static void main(String[] args) { //Access static nested class new StaticClassExample.NestedClass().method(); } public static class NestedClass{ public void method(){ System.out.println("Method in Static / Nested Class"); //Outer class static System.out.println(StaticClassExample.i); //Another nested class static System.out.println(StaticClassExample.NestedClass1.j); } } public static class NestedClass1{ static int j = 20; } }
Output…
Method in Static / Nested Class 10 20