黑马程序员技术交流社区

标题: java的构造函数 [打印本页]

作者: 横溢天使    时间: 2015-9-15 10:17
标题: java的构造函数
  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使用的不对吗?
复制代码

作者: 不隆卡    时间: 2015-9-15 10:30
this.name指向的是结构体中的name成员,而name指向的是构造函数的临时变量
作者: 横溢天使    时间: 2015-9-15 10:35
不是说+name那缺省的是this吗?所以我就加上了,结果打印不出名字,而不加this关键字就能打印出名字。求正解啊
作者: 不隆卡    时间: 2015-9-15 10:46
横溢天使 发表于 2015-9-15 10:35
不是说+name那缺省的是this吗?所以我就加上了,结果打印不出名字,而不加this关键字就能打印出名字。求正 ...

this指向的是结构体的成员啊,你的name只是临时变量啊
作者: boboyuwu    时间: 2015-9-15 11:32
第一个的this.name是类中的成员变量,第二个name是参数
作者: liufeibo    时间: 2015-9-15 15:38
顶一下楼主
作者: asdsy222    时间: 2015-9-15 15:43
我也不知道。。。同求给力答案
作者: 天之饺子    时间: 2015-9-15 17:33
this.name说的是成员变量中的name啊 并没有赋值  所以输出为null  而下面的name说的是局部变量 赋了值“lili”
所以就输出这个。。
作者: 德胜    时间: 2015-9-15 17:43
反正结果都一样
作者: a80C51    时间: 2015-9-15 18:01
这个是this的用法,this指向调用者。而this.name的话,并没有赋值。
作者: spruce    时间: 2015-9-15 19:06
8楼正解
作者: chenyannna    时间: 2015-9-15 19:57
用的对,前后代码结合着看
作者: chenyannna    时间: 2015-9-15 19:59
谁调用this就返回谁就是了
作者: zhangcheng0403    时间: 2015-9-15 20:32
肯定不同第一个调用的是成员变量,第二个调用的是参数。
作者: 纳木错的程序猿    时间: 2015-9-15 23:47
代码没贴全吧。不过看着几位说的好像也明白了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2