Private
字段是從類中訪問,您將無法訪問他們淘汰類,例如: -
class PrivateCons{
private PrivateCons(){
System.out.println("I'm executed");
}
}
public class Test{
public static void main(String[] args) {
PrivateCons p=new PrivateCons(); //this will fail- compiler error
PrivateCons q=new PrivateCons();//this will fail- compiler error
}
}
而且私有構造函數主要用於implementing Singleton Pattern,這是用來當該類的對象只有一個是必要的。以一個例子從鏈接本身維基百科的文章: -
public class singleton
{
private static singleton _obj;
private singleton()
{
// prevents instantiation from external entities
}
// Instead of creating new operator, declare a method
// and that will create object and return it.
public static singleton GetObject()
{
// Check if the instance is null, then it
// will create new one and return it.
// Otherwise it will return previous one.
if (_obj == null)
{
_obj = new singleton();
}
return _obj;
}
}
您可以擴展這個例子,並限制你的對象,以2,3或任意數量的,或者換句話說restrciting你的類實例的數量。
你的主要方法是_inside_類具有私有的構造函數。所以只有你 - 作爲這個類的開發者 - 有權創建它的實例,並且因此可以將它們的數量限制爲你想要的數量。如果您將課堂作爲圖書館的一部分提供給我,那麼我不允許創建實例。這通常是提供靜態工廠方法的單例或類的概念。 – Seelenvirtuose 2014-11-05 07:53:12
感謝您的解釋:) – Awani 2014-11-05 08:12:46