-2

我正在研究一个具有内部类的类。这些类是公共的,我传递给其他类的变量也被声明为公共的。我的问题是,每当我尝试访问名为的内部类时public class classx,我都需要它的变量public int Position。在那个内部类classx中有一个计算位置的方法,在另一个内部类public class classy中,我想显示的当前值Position但是每当我试图从 classx 访问这个位置时,我总是得到一个空值?这是怎么发生的?

顺便说一句,我知道使用实例化和使用构造函数。我也尝试过设置,但我总是得到一个重置值。

这是一个示例代码:


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在这里的任何地方都没有初始化。所以它的值为空。所以很明显,当试图访问它的位置字段时,你会得到一个 NullPointerException。为了能够使用对象,您需要有一个对象。就像在现实生活中一样:看电视,你需要一台电视:

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

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