0

javaのメインメソッドで子クラスから属性にアクセスすることは可能ですか? たとえば、拡張クラスには属性 height とメソッドがあります。

 public String getName()
 {
 return name;
 }

ただし、メイン メソッドから名前にアクセスできません。ありがとう。

4

2 に答える 2

1

メソッドが次のようにフィールドを取得するには、内部クラスのインスタンスを作成する必要があります。Childnamemainstatic

public class Parent {

    class Child {
        String name;

        public String getName() {
            return name;
        }
    }

    public static void main(String[] args) {
        String name = new Parent().new Child().getName();
    }
}

getName()static静的メソッドは静的または最上位の型でのみ宣言できるため、それ自体を宣言することはできません。

于 2012-11-10T15:08:28.637 に答える
0

name は非公開メンバーですか? Main では、(基本クラスかサブクラスかに関係なく) 任意のクラスのパブリック メンバーにのみアクセスできます。

メンバーにアクセスするのではなく、メソッド getName 自体にアクセスする
場合、名前が基本クラスでプライベートとして定義されていなければ、getName() は機能するはずです。Protected、Public、またはデフォルトのパッケージ宣言など、それ以外の場合は機能するはずです。

于 2012-11-10T15:07:44.947 に答える