1
package mypackage.pack1;
class PackClass {
  public PackClass() {
  System.out.println("I'm creating a packaged class");
  }
}

次に、このクラスを含むパッケージをインポートします。クラスがパブリックでなくても、パブリック コンストラクターを使用できますか? または、使用するには同じパッケージ内にいる必要がありますか? パッケージをClassPathに保存してインポートする方法がわからないため、自分で試すことができませんでした。ありがとう

4

2 に答える 2

2

クラス修飾子がデフォルトであるため、別のパッケージから public コンストラクターにアクセスすることはできません。

于 2013-08-08T09:13:15.123 に答える
1

最上位の修飾子は有効です。つまり 、コンストラクターがパブリックであっても、この例ではデフォルトの修飾子が有効です。次のようにコードを解釈してみてください。

デフォルトクラス A { public A() {} }

パブリック コンストラクターはデフォルト レベルのアクセス可能なクラス内にカプセル化されています。では、別のパッケージのクラスがカプセルを壊さずにこのパブリック コンストラクターにアクセスするにはどうすればよいでしょうか? それは単にできません。自分で試してみてください。

于 2013-08-08T09:11:15.017 に答える