黑马程序员技术交流社区
标题:
菜鸟求助:this()的用法问题
[打印本页]
作者:
yuli2039
时间:
2014-7-12 19:37
标题:
菜鸟求助:this()的用法问题
本人刚在学 毕老师的基础java视频第六天,今天学到this关键字时遇到一下问题,望各位前辈解答!如下代码:在Person类中,分别定义了三个 构造函数,为了提高代码的复用性,第三个直接引用了第一个构造函数,但是怎么同时引用两个?
class Person
{
private String name;
private int age;
static String country ="CN";
Person(String name)
{
this.name=name;
}
Person(int age)
{
this.age=age;
}
Person(String name,int age)
{
this(name);
this.age=age;
/*
此处怎么同时引用两个构造函数(name和age)?
自己试了一下 this(name),this(age); 编译出错,this(age)写在下边也不对,只能写在第一行!
*/
}
}
作者:
SLJ_920808
时间:
2014-7-12 19:40
this()只能放在第一行!
作者:
hxwo211314
时间:
2014-7-12 19:54
可以这样写:
Person(String name,int age) {
this.name = name
this.age=age;
}
作者:
doubandddk
时间:
2014-7-12 19:54
this()在一个构造方法中只能用一次,直接this.name = name;也不麻烦
作者:
钱程永
时间:
2014-7-13 00:58
使用一:区分成员变量和局部变量(this代表调用该方法的对象)
使用二:构造方法之间的相互调用(this语句只能定义在构造函数的第一行。因为初始化要先执行,如果在初始化中还有详细初始化,优先执行详细初始化,再执行自己的初始化。
作者:
蒲公英在飞
时间:
2014-7-13 07:42
this()在构造方法中只能使用一次,并且要放在第一行。。。。
作者:
微笑女皇
时间:
2014-7-13 09:21
共同学习!
作者:
tianleboy
时间:
2014-7-13 11:48
你可以写成this.name = name;
作者:
Adjin
时间:
2014-7-13 11:48
this()只能写在第一行,this相当于于new Person(),你给它个name,它就去找name的构造函数
新手也学到这里,如果我回答的不对,请大家指出哈
作者:
大头喝果啤
时间:
2014-7-13 12:09
没有这种写法
作者:
帮帮
时间:
2014-7-13 13:32
constructor call must be the first statement in a constructor
按报错的字面意思是:在构造函数里调用另一个构造函数时必须放在第一行。
这样我们就知道第二行报错的理由了
但是这种限制就说明了:只能使用一次这种方法调用构造函数
如果是更深入的理解:为什么会要求这样,表示自己现在当机了也理解不来,郁闷
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2