以下是内部类和静态内部类之间的显着差异。
静态内部类可以直接访问外部类的静态成员。但是,要访问外部类的实例成员,您需要实例化外部类。
public class Outer { int num = 234; static int data = 300; public static class Inner{ public static void main(String args[]){ Outer obj = new Outer(); System.out.println(obj.num); System.out.println(data); } } }
234 300
非内部类可以直接访问其外部类的成员(实例和静态),而无需实例化。
public class Outer2 { int num = 234; static int data =300; public class Inner{ public void main(){ System.out.println(num); System.out.println(data); } } public static void main(String args[]){ new Outer2().new Inner().main(); } }
234 300
您不能使非静态内部类static的成员。仅在顶级类和静态内部类中允许使用静态方法。