-2

内部クラスを持つクラスに取り組んでいます。これらのクラスはパブリックであり、他のクラスに渡したその変数もパブリックとして宣言されています。私の問題は、たとえば名前付きの内部クラスにアクセスしようとpublic class classxすると、その変数が必要になることですpublic int Position。その内部クラス内classxには位置を計算するメソッドがあり、別の内部クラスpublic class classyでは、現在の値を表示したかったのですPositionが、classx からこの位置にアクセスしようとすると常に null が返されます。これはどのように発生しますか?

ちなみに、私はインスタンス化の使用とコンストラクターの使用を認識しています。get set も試しましたが、常にリセット値を取得します。

サンプルコードは次のとおりです。


public class MainClass
{
          public static class SubClass1
           {
             public int position,x,y;
           }

      public class SubClass2
      {
         private SubClass1 s;

        public void methodCalculate()
        {
          s = new SubClass1();
          s.position = s.x + sy;
        }
      }

      public class SubClass3
      {
         private subClass1 s;

         public void displayMethod()
         {
           system.print(" position: ", s.position);
         }
      }

}

この問題を解決するための正しい方向に私を導いてください。

4

1 に答える 1

1
public class SubClass3 {
    private subClass1 s;

    public void displayMethod() {
        system.print(" position: ", s.position);
    }
}

sここではどこも初期化されていません。したがって、その値は null です。明らかに、その位置フィールドにアクセスしようとすると、NullPointerException が発生します。オブジェクトを使用できるようにするには、オブジェクトが必要です。実生活と同じように、テレビを見るにはテレビが必要です。

public class SubClass3 {
    private subClass1 s = new SubClass1();

    public void displayMethod() {
        system.print(" position: ", s.position);
    }
}
于 2013-10-06T15:06:09.653 に答える