- 静态内部类
- 不依赖外部类对象,可直接创建或通过类名访问,可声明静态成员。
//外部类
public class Outer{
private String name = "xxx";
private int age = 18;
//静态内部类:和外部类相同
static class Inner{
private String address = "上海";
private String phone = "111";
//静态成员
private static int count = 1000;
public void show(){
//如何调用外部类的属性呢
//1.先创建外部类对象
Outer outer = new Outer();
//2.调用外部类对象的属性
System.out.println(outer.name);
System.out.println(outer.age);
//调用静态内部类的属性和方法
System.out.println(address);
System.out.println(phone);
//调用静态内部类的静态属性
System.out.println(Inner.count);
}
}
}
public class TestOuter{
public static void main(String[] args){
//直接创建静态内部类对象
Outer.Inner inner = new Outer.Inner();
//调用方法
inner.show();
}
}
- 只有内部类可以用static修饰,普通的类无法用static修饰
- 只能直接访问外部类的静态成员(实例成员需实例化外部类对象)。
- Outer.Inner inner = new Outer.Inner();
- Outer.Inner.show();