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

© 横溢天使 中级黑马   /  2015-9-15 10:17  /  928 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. 两个构造函数的区别是什么?
  2. Person(String name)
  3.         {
  4.                 System.out.println("my name is..."+this.name+"....my age is.."+this.age);
  5.         }
  6. Person(String name)
  7.         {
  8.                 System.out.println("my name is..."+name+"....my age is.."+age);
  9.         }
  10. 为什么new Person("lisi")后的结果不同呢?this使用的不对吗?
复制代码

14 个回复

正序浏览
代码没贴全吧。不过看着几位说的好像也明白了。
回复 使用道具 举报
肯定不同第一个调用的是成员变量,第二个调用的是参数。
回复 使用道具 举报
谁调用this就返回谁就是了
回复 使用道具 举报
用的对,前后代码结合着看
回复 使用道具 举报
8楼正解
回复 使用道具 举报
这个是this的用法,this指向调用者。而this.name的话,并没有赋值。
回复 使用道具 举报
德胜 中级黑马 2015-9-15 17:43:20
9#
反正结果都一样
回复 使用道具 举报
this.name说的是成员变量中的name啊 并没有赋值  所以输出为null  而下面的name说的是局部变量 赋了值“lili”
所以就输出这个。。
回复 使用道具 举报
我也不知道。。。同求给力答案
回复 使用道具 举报
顶一下楼主
回复 使用道具 举报
第一个的this.name是类中的成员变量,第二个name是参数
回复 使用道具 举报
横溢天使 发表于 2015-9-15 10:35
不是说+name那缺省的是this吗?所以我就加上了,结果打印不出名字,而不加this关键字就能打印出名字。求正 ...

this指向的是结构体的成员啊,你的name只是临时变量啊
回复 使用道具 举报 1 0
不是说+name那缺省的是this吗?所以我就加上了,结果打印不出名字,而不加this关键字就能打印出名字。求正解啊
回复 使用道具 举报
this.name指向的是结构体中的name成员,而name指向的是构造函数的临时变量
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马