Java中的靜態內部類詳解
- 靜態內部類,顧名思義用static修飾的內部類。這個類屬於外部類本身,而不屬於外部類的實例,也稱之爲類內部類。這也是爲什麼外部類不可以用static修飾的原因,因爲一旦被修飾,說明這個類是屬於類而不是屬於實例的。
- 靜態內部類遵守靜態成員不能訪問非靜態成員的規則。靜態內部類實例或者方法都只能訪問外部類的靜態成員,不可訪問非靜態實例。
package com.InnerOuter;
public class Outter_5 {
public static String s1 = "outer_static_s";
public String s2 = "outer_s";
public void Opri() {
System.out.println(inner_5.s3);
System.out.println(new inner_5().S4);
}
public static class inner_5{
public static String s3 = "inner_static_s";
public String S4 = "inner_s";
public void pri() {
System.out.println(Outter_5.s1);
System.out.println(new Outter_5().s2);
}
}
}
package com.InnerOuter;
import com.InnerOuter.Outter_5.inner_5;
public class Outter_5Run {
public static void main(String[] args) {
Outter_5 o5 = new Outter_5();
inner_5 i5 = new inner_5();
o5.Opri();
i5.pri();
}
}
- 除訪問權限之外,靜態內部類和普通內部類在使用上大同小異,沒有太根本性的區別。
- 另外增加一點,在接口中也是可以使用內部類的,但接口中的內部類默認是public static 修飾,也就是說說在接口中,只能使用靜態內部類。