为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我在父类的构造方法里int了一个age等于20 跑完后显示的是10 把int去掉 就变成20了

为什么我在父类的构造方法里int了一个age等于20  跑完后显示的是10 把int去掉 就变成20了

正在回答

4 回答

是这样子的、在构造方法里面的age前面加上Int,就已经相当于重新定义一个变量了,而没有int的时候,只是重新赋值,并且重新定义的这个age变量,也只作用于这个构造方法的范围里面,出了这个范围后,调用的就是类的age了。所以,才会出现你所说的,在构造方法里面给age加Int时出现,子类调用的age还是10,不加时是20。还有什么不明白的,可以继续讨论。

望采纳,谢谢。

2 回复 有任何疑惑可以回复我~
#1

好脾氣先森dian 提问者

非常感谢!
2016-10-14 回复 有任何疑惑可以回复我~

成员变量和局部变量可以重名,所以,父类里面有一个成员变量age,在构造方法里int age这就是局部变量,作用范围就在这个构造方法里

0 回复 有任何疑惑可以回复我~

太感谢了!正好我也有这个疑问

0 回复 有任何疑惑可以回复我~

把代码粘出来看一下

0 回复 有任何疑惑可以回复我~
#1

好脾氣先森dian 提问者

package bao; public class Animal { public int age = 10 ; public String name ; public void eat(){ System.out.println("年龄" + age +"动物能吃东西"); } public Animal(){ System.out.println("Animal类执行了"); age = 20 ; } }
2016-10-13 回复 有任何疑惑可以回复我~
#2

好脾氣先森dian 提问者

这个是父类的代码 还要子类和main方法吗
2016-10-13 回复 有任何疑惑可以回复我~
#3

奔波儿霸1 回复 好脾氣先森dian 提问者

要要要
2016-10-24 回复 有任何疑惑可以回复我~
#4

好脾氣先森dian 提问者 回复 奔波儿霸1

抱歉 过去好久了 代码删掉了
2016-10-24 回复 有任何疑惑可以回复我~
查看1条回复

举报

0/150
提交
取消

为什么我在父类的构造方法里int了一个age等于20 跑完后显示的是10 把int去掉 就变成20了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信