A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

各位大神 请问成员内部类中为啥不能使用静态变量呢?
刚刚看完老毕的相关视频,晕乎乎的。而且老毕的视频里面没有关于这个部分代码的内存过程做画图分析 真的不是很懂。 请诸位画一内存图分析下成员内部类中为啥不能使用静态变量呢?

4 个回复

倒序浏览
静态变量存在方法区,生命周期最长,类一创建就生成,而外部类对象则需要在类实例化时才生成,总要讲究先来后到吧,内部类是依托外部类创建的啊,静态变量如果定义在内部类的话,外部类还没创建静态变量就要生成了,这就相当于一楼还没建好就要盖三楼了,是行不通的。所以成员内部类中不能使用静态变量
回复 使用道具 举报
因为内部类特殊,他被定向为是和成员变量,方法一样的外部类成员 他必须跟外部类实例相关联才能初始化,这是他的特点之一,为了这个其他东西都要让路 而静态成员是不需要实例就初始化的 如果一个非静态内部类有了静态成员,静态成员不依托于任何内部类实例,那结果也就是此内部类不需要外部类实例就初始化了变量,严重侵害了内部类的定向
回复 使用道具 举报
a6511631 发表于 2014-7-18 09:45
静态变量存在方法区,生命周期最长,类一创建就生成,而外部类对象则需要在类实例化时才生成,总要讲究先来 ...

内部类中如果定义了静态成员,内部类也要必须是静态的。这个会对吧。
回复 使用道具 举报
star5603 发表于 2014-7-18 12:20
内部类中如果定义了静态成员,内部类也要必须是静态的。这个会对吧。

这个没错。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马