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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 横溢天使 中级黑马   /  2015-9-15 10:17  /  829 人查看  /  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.name指向的是结构体中的name成员,而name指向的是构造函数的临时变量
回复 使用道具 举报
不是说+name那缺省的是this吗?所以我就加上了,结果打印不出名字,而不加this关键字就能打印出名字。求正解啊
回复 使用道具 举报
横溢天使 发表于 2015-9-15 10:35
不是说+name那缺省的是this吗?所以我就加上了,结果打印不出名字,而不加this关键字就能打印出名字。求正 ...

this指向的是结构体的成员啊,你的name只是临时变量啊
回复 使用道具 举报 1 0
第一个的this.name是类中的成员变量,第二个name是参数
回复 使用道具 举报
顶一下楼主
回复 使用道具 举报
我也不知道。。。同求给力答案
回复 使用道具 举报
this.name说的是成员变量中的name啊 并没有赋值  所以输出为null  而下面的name说的是局部变量 赋了值“lili”
所以就输出这个。。
回复 使用道具 举报
德胜 中级黑马 2015-9-15 17:43:20
9#
反正结果都一样
回复 使用道具 举报
这个是this的用法,this指向调用者。而this.name的话,并没有赋值。
回复 使用道具 举报
8楼正解
回复 使用道具 举报
用的对,前后代码结合着看
回复 使用道具 举报
谁调用this就返回谁就是了
回复 使用道具 举报
肯定不同第一个调用的是成员变量,第二个调用的是参数。
回复 使用道具 举报
代码没贴全吧。不过看着几位说的好像也明白了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马