您的位置:首页 > 编程语言 > Java开发

java 外部类静态方法访问内部类

2012-07-11 10:46 211 查看
public class TestLinkedList {
public static void main(String[] args) {
TestLinkedList ls = new TestLinkedList();
List<IntModel> list = new LinkedList<IntModel>();
for (int i = 10; i > 0; i--) {
list.add(ls.new IntModel(i));
}
}

class IntModel{
int i = 1;
public IntModel(int i){
this.i = i;
}
@Override
public String toString() {
return Integer.toString(i);
}
}

}


看代码中list.add()方法必须初始化外部类自后才可以用new初始化内部类普通的内部类对象隐含地保存了一个引用,指向创建它的外围类对象。

所以要在static方法(类加载时已经初始化)调用内部类的必须先创建外部类。

下面在说下嵌套类:如果你不需要内部类对象与其外围类对象之间有联系,那你可以将内部类声明为static。这通常称为嵌套类(nested class)。想要理解static应用于内部类时的含义,你就必须记住,普通的内部类对象隐含地保存了一个引用,指向创建它的外围类对象。然而,当内部类是static的时,就不是这样了。嵌套类意味着:  

1. 要创建嵌套类的对象,并不需要其外围类的对象。 

2. 不能从嵌套类的对象中访问非静态的外围类对象。

(Thinking in java)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐