[英]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.