私はすでに完全な検索をしていましたが、静的メソッドmain()内のオブジェクトをインスタンス化してから、静的変数またはメソッド。 しかし、私はこれを行っていると信じていますので、ここでは静的コンテキストから参照できない非静的変数を取得する問題を理解できません。メインから非スタティックメソッド(コンストラクタ)にアクセスできない
私はちょうどJavaを学ぼうとし始めていますが、この基本的なコンストラクタの仕事はできませんか?
public class Main
{
public static void main(String[] args)
{
A outer = new A(); //<-- Error here
}
class A
{
A()
{
System.out.println("I'm from outer class A");
}
}
}
静的宣言するとクラスAをインスタンス化しますが、オブジェクトを作成したときにこれを行う必要はありません。私は空のコンストラクタだけを持っている場合、それはまた動作しません。
誰かが私に非常に感謝してくれるのを助けることができたら。私はそれが間違いなく単純なエラーだと知っていますが、私はそれで何時間も探していて、それを理解することはできません。
ここには内部クラスがあります。内部クラスは、囲むクラス(あなたの場合はMain)のインスタンスを必要とします。 – Eran
@Eranが何を言っているのかをもっと明確にするには、 'main'メソッドで使用しているクラスを' A'の代わりに 'Main'を表現するように変更してみてください。 – SomeJavaGuy
'A'静的にする(' static class A {} ') – Aconcagua