在一个类的里面再创建一个类,那这个类被称为内部类,如果这个类使用static进行修饰,那这个类就是静态内部类。
静态内部类需要注意的地方:
- 静态内部类只能访问外部的静态资源,即:静态变量和静态方法
- 静态内部类中可以定义静态变量和静态方法,但是普通内部类里面不能定义静态变量和静态方法。
- 静态内部类的调用方式 new A.B() 普通内部类的实例化方式:new A().new B()
创建一个静态内部类只需要完成以下三步:
- 将构造器私有
private Test() {
}
- 提供一个静态的私有变量,初始值就实例化该对象
private static Test test = new Test();
- 提供一个公有的静态方法,返回该静态变量
public Test getInstance() {
return this.test;
}
除了这个实现方式,还有一些其他的实现方式:
public static class Singleton5 {
private final static class SingletonHolder {
private static final Singleton5 INSTANCE = new Singleton5();
}
private Singleton5() {
}
public static Singleton5 getInstance() {
return SingletonHolder.INSTANCE;
}
}