我正在研究一个有内部类的类。这些类是公共的,我传递给其他类的变量也被公开。我的问题是,每当我尝试访问例如名为public class classx
的内部类时,我将需要其变量public int Position
。在内部类classx
内部有一个计算位置的方法,在另一个内部类public class classy
中,我想显示Position
的当前值,但每当我尝试访问此位置时从classx我总是得到一个null?这是怎么发生的?
顺便说一下,我知道使用instantiate和使用构造函数。我也尝试过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);
}
}
}
任何请指导我解决这个问题的正确方向。
答案 0 :(得分: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);
}
}