Java中的静态类和非静态内部类有什么区别?

以下是内部类和静态内部类之间的显着差异。

访问外部类的成员

静态内部类可以直接访问外部类的静态成员。但是,要访问外部类的实例成员,您需要实例化外部类。

示例

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的成员。仅在顶级类和静态内部类中允许使用静态方法。

以上是 Java中的静态类和非静态内部类有什么区别? 的全部内容, 来源链接: utcz.com/z/327187.html

回到顶部