在一個類的里面再創(chuàng)建一個類播瞳,那這個類被稱為內(nèi)部類怀挠,如果這個類使用static進行修飾,那這個類就是靜態(tài)內(nèi)部類懂诗。
靜態(tài)內(nèi)部類需要注意的地方:
- 靜態(tài)內(nèi)部類只能訪問外部的靜態(tài)資源,即:靜態(tài)變量和靜態(tài)方法
- 靜態(tài)內(nèi)部類中可以定義靜態(tài)變量和靜態(tài)方法苗膝,但是普通內(nèi)部類里面不能定義靜態(tài)變量和靜態(tài)方法殃恒。
- 靜態(tài)內(nèi)部類的調(diào)用方式 new A.B() 普通內(nèi)部類的實例化方式:new A().new B()
創(chuàng)建一個靜態(tài)內(nèi)部類只需要完成以下三步:
- 將構(gòu)造器私有
private Test() {
}
- 提供一個靜態(tài)的私有變量,初始值就實例化該對象
private static Test test = new Test();
- 提供一個公有的靜態(tài)方法辱揭,返回該靜態(tài)變量
public Test getInstance() {
return this.test;
}
除了這個實現(xiàn)方式离唐,還有一些其他的實現(xiàn)方式:
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;
}
}