public class InnerClass3 {
private static int i = 1;
private int j = 10;
public static void outer_f1() {
}
public void outer_f2() {
}
// 靜態內部類能夠用public,protected,private修飾(和成員內部類相比,多了一個public修飾符)
// 靜態內部類中能夠定義靜態或者非靜態的成員,可是隻能外部類的 靜態方法或靜態變量
static class Inner {
static int inner_i = 100;
int inner_j = 200; spa
static void inner_f1() {
//靜態內部類只能訪問外部類的靜態成員(包括靜態變量和靜態方法)
//j++;
System.out.println("Outer.i" + i);
outer_f1();
} class
// 即使自身不是 靜態的方法
void inner_f2() {
// 靜態內部類不能訪問外部類的非靜態成員
// System.out.println("Outer.i"+j);
// outer_f2();
}
} 變量
public void outer_f3() {
// 外部類方法訪問內部類的靜態成員:內部類.靜態成員
System.out.println(Inner.inner_i);
Inner.inner_f1(); 方法
// 外部類方法訪問內部類的非靜態成員:實例化內部類便可
Inner inner = new Inner();
inner.inner_f2();
} static
public static void main(String[] args) {
new InnerClass3().outer_f3();
InnerClass3.Inner inner= new InnerClass3.Inner();//前面要不要前綴均可以。
Inner inner1= new InnerClass3.Inner();//前面要不要前綴均可以。
}
} co