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

关于形参和实参值得传递问题

关于形参和实参值得传递问题

月亮岛Superman 2017-04-08 14:30:36
 class Animal { public String name; Animal (String name) { this.name = name; }} class Dog extends Animal { public String furColor; Dog(String n,String c) { super(n);c = furColor; }}public class Test { public static void main(String args[]) { Animal a = new Animal("name"); a = new Dog("bigyellow","yellow"); System.out.println(a.name); Dog d1 = (Dog) a; System.out.println(d1.furColor); }}请问为啥这里我写c = furColor;  d1.furColor输出结果为null,  写成furColor=d1输出结果就是yellow呢?
查看完整描述

2 回答

已采纳
?
四无小青年

TA贡献88条经验 获得超43个赞

这不是什么形参实参的问题,而是最基础的运算符的问题,java的赋值运算符“=”是把右边的值赋给左边,

你这样写c = furColor; 就是把furColor的值赋给c,所以furColor的没有任何变化还是初始值null,furColor=d1这是把d1的值赋给furColor=d1,所以furColor的值是等于d1的

若解惑,望采纳

查看完整回答
3 反对 回复 2017-04-08
?
qq_随心_57

TA贡献8条经验 获得超3个赞

你需要把语句修改为furColor=c;这样才是把通过形参把传入的实参给dog类中的变量赋值,才会输出yellow结果。

查看完整回答
1 反对 回复 2017-04-09
  • 2 回答
  • 0 关注
  • 1412 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信