您的位置:首页 > 职场人生

黑马程序员——内部类不能有静态的成员的原因

2014-12-20 16:57 197 查看
之前没搞明白这个问题,现在明白了做一个记录

class Outer{

int x = 2;

class Inner{
//这里show方法为何不能是静态的
public void show(){

System.out.println("inner:"+x);
}

}

}


这里有几个问题就是

1.要使用某个类的static属性或者方法,那么这个类必须要加载到jvm中。

2.static类型的属性和方法,在类加载的时候就会存在于内存中。

3.非static的内部类,在外部类加载的时候,并不会加载它,所以它里面不能有静态变量或者静态方法。

结论:

如果一个非static的内部类如果具有static的属性或者方法,那么就会出现一种情况:内部类未加载,但是却试图在内存中创建static的属性和方法,这当然是错误的。原因:类还不存在,但却希望操作它的属性和方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐