非静态内部类为什么不能定义静态变量
答案:2 悬赏:0 手机版
解决时间 2021-04-10 21:55
- 提问者网友:遮云壑
- 2021-04-10 13:26
非静态内部类为什么不能定义静态变量
最佳答案
- 五星知识达人网友:深街酒徒
- 2021-04-10 14:00
因为非静态的内部类除了要依靠外部类实例外,还要依赖内部类实例,而静态变量不需要构建类的实例的,两者是自相矛盾,但定义final类型的变量,即常量是可以的,因为常量可以离开类的实例存活一段的时间。
全部回答
- 1楼网友:琴狂剑也妄
- 2021-04-10 15:24
静态变量是要占用内存的,在编译时只要是定义为静态变量了,系统就会自动分配内存给他,而内部类是在宿主类编译完编译的,也就是说,必须有宿主类存在后才能有内部类,这也就和编译时就为静态变量分配内存产生了冲突,因为系统执行:运行宿主类->静态变量内存分配->内部类,而此时内部类的静态变量先于内部类生成,这显然是不可能的,所以不能定义静态变量!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯