2010-03-09 65 views
6

有人能告訴我這是什麼意思?我要去槽Java的書,我已經encontered這個例子:關於Java類構造函數的問題

public class Message { 

    Message(){} 

    public Message(String text){ 
     this.text = text; 
    } 

是什麼Message(){}意思?

回答

10

這是一個不帶參數的包裝私有空構造函數。

通過使用new Message();,可以使用它從同一包中的任何代碼創建新的Message實例。

值得知道它不會初始化text字段,因此它將保留默認的null值。

+0

我認爲添加這樣一個事實會很有趣,即好的一點是沒有人可以在類之外使用默認構造函數,所以用戶被迫提供文本參數 – 2010-03-09 15:55:30

+1

@Valentin:不,這是私人的思考..這是包私有(也稱爲默認),它可以從同一個包中的任何地方訪問。 – Tim 2010-03-09 15:57:14

+0

我的不好,好像我今天沒有真正清醒:/ – 2010-03-09 17:03:41

1

就像

Message() 
{ 
} 

但使用較少的線路。

它的訪問級別是(默認)程序包訪問級別,這意味着只有同一個程序包中的類才能使用此構造函數實例化此對象。

1

Message類定義了兩個構造函數。第一個(默認構造函數)的作用域爲包級可見性。這意味着只有同一包中的類才能執行類似如下的代碼:

Message msg = new Message(); 

包之外的所有類都必須調用第二個構造函數。