【示例】内部类的访问
public class TestInnerClass {
public static void main(String [] args){
//先创建外部类实例,然后使用该外部类实例创建内部类实例
Outer.Inner inner = new Outer().new Inner();
inner.show();
Outer outer = new Outer();
Outer.Inner inn = outer.new Inner();
inn.show();
}
}
输出:
内部类方法里的局部变量age: 30
内部类的成员变量age: 20
外部类的成员变量age: 10
内部类方法里的局部变量age: 30
内部类的成员变量age: 20
外部类的成员变量age: 10
b)静态内部类
i. 定义方式:
static class ClassName {
//类体
}
ii. 使用要点:
1.当一个静态内部类对象存在,并不一定存在对应的外部类对象。因此,静态内部类的实例方法不能直接访问外部类的实例方法。
2.静态内部类看做外部类的一个静态成员。因此,外部类的方法中可以通过:"静态内部类.名字"的方式访问静态内部类的静态成员,通过new 静态内部类()访问静态内部类的实例。
【示例】静态内部类的访问
class Outer{
//相当于外部类的一个静态成员
static class Inner{
}
}
public class TestStaticInnerClass {
public static void main(String [] args){
//通过 new 外部类名。内部类名()来创建内部类对象
Outer.Inner inner = new Outer.Inner();
}
}
网友评论