2013-01-06 30 views
0

假設有一個類A.以下哪兩個訪問修飾符是構造函數的默認值?什麼是顯式構造函數訪問修飾符?

public A() 
{ 
    private A() 
    { 
     //some code.... 
    } 

    protected A() 
    { 
     //some code.... 
    } 
} 
+1

http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html –

+0

如果您瞭解訪問修飾符的含義,這裏沒有任何問題,如果您不需要查看它們在JLS中。不是一個真正的問題。 – EJP

回答

6

它意味着與函數和變量的修飾符完全相同,只是現在它指的是誰可以構造一個類的實例。

public - 任何人都可以從代碼中的任何位置調用構造函數。

private - 無法從類外部構造 - 通常用於控制誰可以使用靜態成員工廠方法實例化類。一個器件的應用的一個很好的例子發現here

protected - 像private但現在繼承參與 - 任何子類工廠方法可以使用,因爲現在他們可以調用此構造。

由於@dasblinkenlight提到,如果你不指定任何修改,那麼他們默認到被package-private,這意味着他們只對包內的類可見。

+0

爲了完整起見,您可能想提及具有其默認訪問權限的'A(){}',以供同一包中的成員使用。 – dasblinkenlight

相關問題