Java静态嵌套类

在Java中,创建在类内部的类称为静态嵌套类。它不能访问非静态的数据成员和方法。它可以通过外部类的名称进行访问。

  • 它可以访问外部类的静态数据成员,包括私有成员。
  • 静态嵌套类无法访问非静态(实例)数据成员或方法。

具有实例方法的Java静态嵌套类示例

TestOuter1.java

class TestOuter1{  
  static int data=30;  
  static class Inner{  
   void msg(){System.out.println("data is "+data);}  
  }  
  public static void main(String args[]){  
  TestOuter1.Inner obj=new TestOuter1.Inner();  
  obj.msg();  
  }  
}  

输出:

data is 30

在此示例中,您需要创建静态嵌套类的实例,因为它具有msg()实例方法。但是您不需要创建Outer类的对象,因为嵌套类是静态的,静态属性、方法或类可以在没有对象的情况下访问。

编译器生成的内部类

import java.io.PrintStream;  
static class TestOuter1$Inner  
{  
TestOuter1$Inner(){}  
void msg(){  
System.out.println((new StringBuilder()).append("data is ")  
.append(TestOuter1.data).toString());  
}    
}  

具有静态方法的Java静态嵌套类示例

如果在静态嵌套类中有静态成员,您不需要创建静态嵌套类的实例。

TestOuter2.java

public class TestOuter2{  
  static int data=30;  
  static class Inner{  
   static void msg(){System.out.println("data is "+data);}  
  }  
  public static void main(String args[]){  
  TestOuter2.Inner.msg();//无需创建静态嵌套类的实例  
  }  
}  

输出:

data is 30

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想