簡體   English   中英

java中的private構造函數有什么用?

[英]What is the use of private constructor in java?

私有構造函數不允許創建對象,例如,這里是代碼。

class emp
{
    private emp()//private constructor
    {

    }
}

public class privateconstructor
{

    public static void main(String[] args)
    {
        emp e = new emp();//throws Error as constructor not visible

    }

}

通過將類聲明為抽象用戶,還可以防止創建對象..so,我的問題是為什么要使用私有構造函數?
僅供參考:
雖然可以通過例如靜態方法創建對象。

class emp
{
    private emp()//private constructor
    {

    }
    static emp createInstance()//static method
    {
        return new emp();//returns an instance
    }

    void disp()
    {
        System.out.println("member function called");
    }
}

public class privateconstructor
{

    public static void main(String[] args)
    {
        emp e = emp.createInstance();//creating object by static method  
        e.disp();

    }

}

輸出:調用成員函數

所以我的問題是為什么私人建築商?

這樣做是為了防止從任何其他類構造一個類。 通常在實用程序類,單例或具有工廠方法而不是構造函數的類中使用。

所有enum類都有私有構造函數,它們對於Utility和Singleton類也很有用。

有一些對象取決於特定的事物。 假設Runtime類,其實例將取決於System當前的Runtime環境。 所以代替

Runtime run = new Runtime();  //java.lang.Runtime

運行時的對象是通過以下方式創建的:

Runtime ru = Runtime.getRuntime();

因此,不允許像這樣創建對象的類使用私有構造函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM