0

このサイトには、これに関する多くの質問があります。私は、特定の問題の解決策を見つけることなく (またはそれらがどのように関連しているかを確認することができずに)、それらすべてとインターネットを閲覧しました。また、ここでユニークなのは、これが Java 固有の問題であり、C# には当てはまらないことです。ここで(Javaで)本当に簡単なことをして、そのようなクラスを作成します-

public class asdf{
    public int aa;
    public int bb;
    public asdf(int i,int j){
        aa=i;
        bb=j;
    }
}

今、私は別のクラスのメインメソッドからインスタンス化しようとしています -

asdf aaaa = new asdf(1,2);

テストクラスの完全なコードは次のとおりです-

public class test2 {
public class asdf{
    public int aa;
    public int bb;
    public asdf(int i,int j){
        aa=i;
        bb=j;
    }
 }
  public static void main(String[] args){
     asdf aaaa = new asdf(1,2);
  }
}

この行でエラーが発生します-非静的変数は静的コンテキストから参照できません。ここで静的とは何ですか?メインメソッドは静的ではないクラスにあり、変数は静的ではなく、インスタンスを作成しています。だから問題は何ですか?これは C# で完全に機能することにも注意してください。したがって、これはJava固有のもののようです。

4

2 に答える 2

0

asdf問題は、メイン メソッドから作成するときに内部クラスがインスタンス化されることです。

最も簡単な方法は、asdfクラスを静的にすることです。それ以外の場合は、test2 インスタンス内からのみ asdf インスタンスを作成できます。

于 2013-08-29T02:11:51.937 に答える