第18行:Inner i= hello.new Inner(); 不太懂 1,创建内部类对象为什么要使用外部类对象? 2,如果有多个外部类对象,那创建内部类对象的时候是不是随便用一个外部类对象就可以了?
内部类可以随意访问外部类的所有属性和方法,外部类不可以直接访问内部类的属性和方法,这是规定
静态方法无法访问非静态方法,给内部类加一个static就OK了
//外部类HelloWorld
public class HelloWorld {
// 内部类Inner,类Inner在类HelloWorld的内部
public static class Inner {
// 内部类的方法
public void show() {
System.out.println("welcome to imooc!");
}
}
public static void main(String[] args) {
// 创建内部类对象
Inner i = new Inner();
// 调用内部类对象的方法
i.show();
}
}
静态方法无法访问非静态成员变量(你可以吧Inner()看成一个成员变量)
内部类中静态内部类不需要使用外部类对象就可以直接创建。你给出的例子应该是成员内部类的创建。我个人把成员内部类理解为一个特殊的成员变量,你要使用成员内部类时就需要 对象.(成员内部类)。
不随便啊,建议你看下成员内部类那一节课程