0

プライベートコンストラクターは、オブジェクトの作成を許可しません。たとえば、ここにコードがあります..

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

    }

}

クラスを抽象ユーザーとして宣言することにより、オブジェクトの作成を防ぐこともできます..だから私の質問は、なぜプライベートコンストラクターですか?
参考までに:
オブジェクトはたとえば 静的メソッドで作成できますが..

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();

    }

}

出力: 呼び出されたメンバー関数

4

2 に答える 2

5

だから私の質問は、なぜプライベートコンストラクターなのですか?

これは、他のクラスからのクラスの構築を防ぐために行われます。これは通常、ユーティリティ クラス、シングルトン、またはコンストラクタの代わりにファクトリ メソッドを持つクラスで使用されます。

すべてのenumクラスにはプライベート コンストラクターがあり、Utility および Singleton クラスにも役立ちます。

于 2013-07-14T20:26:22.643 に答える
0

特定のものに依存するオブジェクトがいくつかあります。Runtime クラスを想定すると、そのインスタンスはシステムの現在のランタイム環境に依存します。その代わりに、

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

RunTime のオブジェクトは次のように作成されます。

Runtime ru = Runtime.getRuntime();

そのため、そのようにオブジェクトを作成できないクラスは、プライベート コンストラクターを使用します。

于 2013-07-14T20:40:33.263 に答える