不管是静态内部类的普通方法还是静态方法都不能访问外部类的实例变量
因为当静态内部类对象调用这些方法时,不知道这些实例变量是哪些对象的
分两个阶段
阶段一:先载入类
阶段二:然后才能依据类来实例化对象
而static的方法、变量都是属于类的,非static的则属于对象
如果在阶段一,访问非static成员的方法,因为还没有外部类对象,所以不能访问成功外部类的实例变量
如果在阶段二,一个类有那么多对象在内存生存着,类也不知道该访问哪个对象的实例变量
静态内部类访问限制
本文解释了静态内部类为何无法访问外部类的实例变量。主要原因是静态内部类的方法在类加载阶段就能被调用,此时可能还没有创建外部类的对象。
不管是静态内部类的普通方法还是静态方法都不能访问外部类的实例变量
因为当静态内部类对象调用这些方法时,不知道这些实例变量是哪些对象的
分两个阶段
阶段一:先载入类
阶段二:然后才能依据类来实例化对象
而static的方法、变量都是属于类的,非static的则属于对象
如果在阶段一,访问非static成员的方法,因为还没有外部类对象,所以不能访问成功外部类的实例变量
如果在阶段二,一个类有那么多对象在内存生存着,类也不知道该访问哪个对象的实例变量
4738
965

被折叠的 条评论
为什么被折叠?