JAVA一个类有两个构造函数,当在一个构造函数中调用另外一个构造函数时为什么要用this.()而不能用类名.()

JAVA一个类有两个构造函数,当在一个构造函数中调用另外一个构造函数时为什么要用this.()而不能用类名.()
举报描述不清违规检举侵权投诉| 2009-03-12 10:51 彪悍排骨男 | 浏览 7058 次
class Test{
    int i;
    Test(){ i = 0; }
    Test(int i){ this.();}
}
我的意思是此处第二个构构造函数调用第一个构造函数时为什么必须用this.()而不能用Test.()
打错了  
  是this()  和 类名()   
多打了一点
专业回答
2009-03-13 20:06
构造方法是在产生对象时被java系统自动调用的,我们不能在程序中像调用其他方法一样去调用构造方法(必须通过关键词new自动调用它)。但我们可以在一个构造方法里调用其他重载的构造方法,不是用构造方法名,而是用this(参数列表)的形式,根据其中的参数列表,选择相应的构造方法。例如:
public class Person{
String name;
int age;
public Person(String name){
this.name = name;
}
public Person(String name,int age){
this(name);
this.age = age;
}
}


6条回答
举报描述不清违规检举侵权投诉|2009-03-19 16:04 daay1986 | 十二级
this.()这后面没点的吧。
this()这个能表示是当前对象的构造方法,不会弄两个对象出来啊。Test()这么搞那就肯定两个对象出来了。
this有个作用就是表示自己类的对象。所以除非你想弄两个对象,否则构造掉构造就要加this.
评论 | 给力1 不给力0
举报描述不清违规检举侵权投诉|2009-03-12 11:16 ihuuhz | 六级
如果你要用Test.(),必须先实例化,Test test=new Test();然后test.Test();
评论 | 给力0 不给力2
举报描述不清违规检举侵权投诉|2009-03-12 10:57 hanwt139 | 八级 最快回答
...亏你想的出来...
长见识了,希望高手来解答一下。。我也了解了解。。。
评论 | 给力0 不给力2
举报描述不清违规检举侵权投诉|2009-03-12 12:30 ge_haiming | 二级
用this可使人容易理解,如果用Test()会感觉很别扭的!
这只是语法规定,研究这个意义不大。
评论 | 给力0 不给力1
举报描述不清违规检举侵权投诉| 2009-03-12 11:47 83299387gvirus | 来自:手机知道 | 八级
楼上SB!TM构造方法能像你那样直接调?
评论 | 给力2 不给力1
举报描述不清违规检举侵权投诉|2009-03-12 11:44 max_ya | 三级

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值