0

クラス(クラスA)内にプライベートクラス(クラスAB)を作成しました。クラスAには、プライベートクラス(クラスAB)内で呼び出しているメソッドがあります。しかし、「;」のエラーが発生します メソッド呼び出しステートメントがある場所には何もありません。

public class ClassA
{
  .........
 ....
 public void Check()
   {
  .....
 }

private class ClassAB
{
  ... 
   public void callCheck()
  {
     check();// I am getting error here
   }
}
}

このエラーの理由は何ですか?

ここに画像の説明を入力

このメソッド呼び出しを削除すると、このエラーはなくなります..

親クラスからすべてのものを自動的に継承している子クラス内で親クラス関数を呼び出すことはできません..

よろしく

4

1 に答える 1

1

構文が間違っています。とにかく、以下を見てください:

インスタンスのメソッドと変数と同様に、内部クラスはそれを囲むクラスのインスタンスに関連付けられており、そのオブジェクトのメソッドとフィールドに直接アクセスできます。また、内部クラスはインスタンスに関連付けられているため、静的メンバー自体を定義することはできません。

内部クラスのインスタンスであるオブジェクトは、外部クラスのインスタンス内に存在します。次のクラスを検討してください。

  class OuterClass {
        ...
        class InnerClass {
            ...
        }
    }

InnerClassのインスタンスは、OuterClassのインスタンス内にのみ存在でき、それを囲むインスタンスのメソッドとフィールドに直接アクセスできます。次の図は、このアイデアを示しています。

詳細については、http://docs.oracle.com/javase/tutorial/java/javaOO/nested.htmlをご覧ください。

https://blogs.oracle.com/darcy/entry/nested_inner_member_and_top

于 2012-11-13T14:10:24.710 に答える