class Outer {
class Inner1 {// 内部类
void function1() {
System.out.println("function1");
}
}
static class Inner2 {// 静态内部类 当内部类中定义了静态成员,则,该内部类必须是静态的
void function2_1() {
System.out.println("function2_1");
}
static void function2_2() {
System.out.println("function2_2");
}
}
// 同级外部方法---访问内部类
void method() {// 外部类访问内部类,必须建立内部类对象
new Outer().new Inner1().function1();
new Outer.Inner1().function1();
new Inner1().function1();
new Outer.Inner2().function2_1();
new Inner2().function2_1();
new Outer.Inner2().function2_2();
new Inner2().function2_2();
Outer.Inner2.function2_2();
Inner2.function2_2();
}
// 同级静态外部方法---访问内部类
static void method2() {// 静态访问非静态,更要new对象,从最外层开始
new Outer().new Inner1().function1();
new Outer.Inner2().function2_1();
new Inner2().function2_1();
new Outer.Inner2().function2_2();
new Inner2().function2_2();
Outer.Inner2.function2_2();
Inner2.function2_2();
}
}
public class 访问成员内部类 {
// 非同级外部方法---访问内部类
void show() {
new Outer().new Inner1().function1();
new Outer.Inner2().function2_1();
new Outer.Inner2().function2_2();
Outer.Inner2.function2_2();
}
// 非同级静态外部方法---访问内部类
public static void main(String[] args) {
new Outer().new Inner1().function1();
new Outer.Inner2().function2_1();
new Outer.Inner2().function2_1();
Outer.Inner2.function2_2();
}
}
|