为什么我不在class Book前面加static 这个代码会报错list.add(new Book(123, "java编程思想"));
加上之后就不会报错了
鼠标放在红线上,提示什么错
BOOk只是内部类,静态方法在类加载时加载,其他的在实例化类时加载,
也就是main加载在book之前,不能调用不存在的东西吧
非静态内部类属于外部类的实例成员,所以外部类静态方法想引用非静态内部类时,需要先获取外部类实例,再"outclass.new Innerclass()"获取内部类实例
public class OutClass {
class InnerClass{
int i=2;
int a=0;
}
public static void main(String[] args) {
ArrayList list=new ArrayList();
OutClass outClass=new OutClass();//获取外部类实例
InnerClass inner=outClass.new InnerClass();//外部类实例.new 获取内部类实例
list.add(inner);
}
}