-1
内部クラスのオブジェクトは、そのクラスを囲むオブジェクトからのみ発生することがわかります。だから、内部クラスのオブジェクトが、囲むクラスの定義の外に、囲むクラスの非静的メソッドを呼び出すことができないのはなぜですか?外部クラスの定義外で、内部クラスのオブジェクトを持つ外部クラスのメソッド(非静的)を呼び出すのはなぜですか?
public class OuterClass
{
public class InnerClass
{
public void innerMethodA()
{
outerMethodA(); // This is OK.
new InnerClass().outerMethodA(); // This is not OK.
}
}
public void outerMethodA()
{
System.out.println("This is OuterMethodA");
}
}
public class ExtraClass
{
public void testMethod()
{
OuterClass outerObj = new OuterClass();
OuterClass.InnerClass innerObj = outerObj.new InnerClass();
outerObj.outerMethodA(); // This is OK.
innerObj.outerMethodA(); // This is not. Why is that?
}
}
フォーマットの間違いや、私の質問を進めていることをお詫び申し上げます。私はいくつかの下投票の後にそれを編集しました。最善を尽くした。ありがとうございました。
これはコードが必要だと思います。私は本当にあなたが何を意味するかは分かりません。 – markspace
非静的メソッドと呼ばれるクラスのインスタンスが必要です。内部クラスは、それが囲まれているという理由だけで魔法のようにそのインスタンスを持っていません –
なぜこのようなことをしたいですか?この疑問の背後にある原動力は何ですか?これはどんな状況で意味がありますか? –