Java教程-Java静态嵌套类

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