1

Alpha.java

class Alpha {
  private void iamprivate() {
    System.out.println("iamprivate");
  }
}

Beta.java

class Beta {
  void accessMethod() {
    Alpha a = new Alpha();
    a.iamprivate();     // illegal
  }
}

クラス Alpha のインスタンスには、クラスのすべての変数とメソッドが必要です。

しかし、オブジェクトのすべてのメソッドを呼び出せないのはなぜでしょうか? 一部のメソッドがプライベートだからですか?

クラスのインスタンスは、クラスの定義の外にクラスのプライベート メンバーを持っていないようです。

すみません、全くの初心者です。質問はばかげているかもしれません。

4

3 に答える 3

1

あなたのメソッドは非公開です

private void iamprivate() {

インスタンスではなく、クラス内でのみ使用できます。に変更しますpublic

于 2013-11-04T03:40:41.237 に答える
1

それはメソッドがprivate. Alphaこれらは、クラスのメソッドによってのみアクセスできます。別のクラスでアクセスしたい場合は、 として宣言する必要がありますpublic

詳細はこちら: http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

于 2013-11-04T03:41:36.090 に答える
1

しかし、オブジェクトのすべてのメソッドを呼び出せないのはなぜでしょうか? 一部のメソッドがプライベートだからですか?

プライベート メソッドは外部に公開されませんが、クラス内でいつでもプライベート メソッドを呼び出すことができます。

クラスのインスタンスは、クラスの定義の外にクラスのプライベート メンバーを持っていないようです。

クラスは、プライベート/パブリックに関係なく、すべてのプロパティを所有しています。private メンバーがクラス外からアクセスできないように制限されているだけです。

于 2013-11-04T03:42:21.253 に答える