2011-02-01 16 views
1

クラスを別のクラスの中にネストすると、ネストされたクラスは自動的に親クラスのサブクラスになりますか?ネストされたクラスは、親クラスのすべてのパブリックメソッド、vairablesにアクセスできますか?入れ子クラス

ああ、申し訳ありません - 私は主にJavaを指しているプログラミング言語です!

+1

どの言語ですか? –

答えて

5

クラスを別のクラスの中にネストすると、ネストされたクラスは自動的に親クラスのサブクラスになりますか?

ネストされたクラスは、すべてのパブリックメソッド、親クラスのvairablesへのアクセス権を持っていますか?

内部クラスが静的でない場合は、はいです。また、他のメンバーに静的でもなくても、公開でもなくてもアクセスできます。ネストされたクラスがstaticと宣言されている場合、それは囲むインスタンスがないので、外部( "親")クラスの静的メンバーにしかアクセスできません。

+0

わずか8秒前です。 :)。しかし、あなたは私よりもずっと速いです。 :) –

+0

他の方法でも機能しますか?外部クラスは内部クラスをインスタンス化せずに内部クラスのメソッド/変数にアクセスできますか? – dr85

+0

+1、素晴らしい答え。 – aioobe

2

ネストされたクラスは、親クラスのサブクラスではありません。ネストされたクラスが静的でない場合は、親クラスのすべてのメソッドと変数にアクセスできます。ネストされたクラスが静的である場合、静的なフィールドおよびメソッドのみにアクセスできます。

1

これはどの言語ですか?ほとんどの言語では、内部クラスとサブクラスは全く異なるものです。内部クラスは、外部クラスの「メンバー」であり、フィールドおよびメソッドは外部クラスのメンバーと同様です。そして、外部クラスの任意の(静的)メソッドがすべての(静的な)クラスメンバーにアクセスできるように、通常、内部クラスは外部クラスのメンバーとして外部クラスの他のすべてのメンバーにアクセスします。 (ただし、すべてのオブジェクト指向言語に当てはまるわけではありません)