2010-11-11 59 views
9

this()在Java中的含义是什么?Java中this()的含义是什么

它看起来在类变量区把

this(); 

当它是唯一有效的。

任何人都有这个想法?

谢谢。

+0

我在其他帖子上回答了类似的问题。可能会有所帮助http://stackoverflow.com/questions/15867722/java-this-method-confusion – Avi 2013-04-09 23:13:14

回答

7

这意味着你正在调用另一个构造函数的默认构造函数。它必须是第一条语句,如果有,就不能使用super()。使用它是相当罕见的。

+0

@Byron,欢呼声。 – 2010-11-11 18:58:06

1

调用this() wil调用没有参数的类的构造函数。

你会使用这样的:

public MyObj() { this.name = "Me!"; } 
public MyObj(int age) { this(); this.age = age; } 
+1

哦,上帝......不要那样做! public MyObj(){this(“Me!”);} public MyObj(String nm){this(name,0);} MyObj(String nm,int a){name = nm;年龄= a; } – TofuBeer 2010-11-11 19:07:22

+0

'function'不是Java关键字 – barrowc 2010-11-12 03:22:36

+0

@barrow:再次混合我的语言,谢谢。 – 2010-11-12 13:51:57

3

它表示“无参数的调用构造函数”。例如:

public class X { 
    public X() { 
     // Something. 
    } 
    public X(int a) { 
     this(); // X() will be called. 
     // Something other. 
    } 
} 
+0

很好解释。谢谢 – Jay 2010-11-11 18:53:54

0

类调​​用自身的默认构造函数显式调用构造函数。用论据来看它更常见。

6

这是对无参构造函数的调用,您可以调用它作为另一个构造函数中的第一条语句以避免重复代码。

public class Test { 

     public Test() { 
     } 

     public Test(int i) { 
      this(); 
      // Do something with i 
     } 

}