0

クラス A があるとします。次の 2 つのアクセス修飾子のうち、コンストラクターの既定のアクセス修飾子はどれですか?

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

    protected A()
    {
         //some code....
    }
}
4

1 に答える 1

6

これは、関数や変数の修飾子とまったく同じことを意味しますが、クラスのインスタンスを構築できる人を指すようになりました。

public- コード内のどこからでもコンストラクターを呼び出すことができます。

private- クラスの外部から構築することはできません - 通常、静的メンバー ファクトリ メソッドを使用してクラスをインスタンス化するユーザーを制御できるようにするために使用されます。ここにあるアプリケーションの良い例

protected- 同様privateですが、継承が含まれるようになりました - このコンストラクターを呼び出すことができるようになったため、任意のサブクラスのファクトリ メソッドを使用できます。

@dasblinkenlight が言及しているように、修飾子を指定しない場合、デフォルトpackage-privateになります。つまり、パッケージ内のクラスにのみ表示されます。

于 2013-01-06T03:05:32.820 に答える