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