下面是我的Range类代码的一部分,以及一个名为Tree的单独类中的构造函数。在此构造函数中,我试图将类范围内的对象实例化到我的树类上。当我尝试在树类中编译构造函数时,它表示无法从静态上下文引用要尝试调用的方法。我要这样做正确吗?我很确定这是一个很容易解决的问题,但我无法弄清楚。谢谢
public class Range{
int low, high;
public Range(int plow, int phigh){
low = plow;
high = phigh;
}
public int getLow(){
return low;
}
public int getHigh(){
return high;
}
public class Tree {
String name;
public Tree(String pname, int plow, int phigh) {
name = pname;
Range.getHigh() = phigh; <---where error message is
Range.getLow() = plow;
}
}
您的代码有两个问题:第一,getLow()
而且getHigh()
是实例方法,而不是类方法。但是,您可以通过Range.getLow()
和来调用它们Range.getHigh()
,这意味着您可以在课程上调用它们Range
。这是不允许的。首先,您必须创建该类的实例:
ran = new Range(...)
然后在此实例上调用方法:
ran.getHigh();
ran.getLow();
代码的另一个问题是您试图将值赋给方法调用:
Range.getHigh() = phigh;
在Java中这是不可能的。Java方法返回值,并且您无法分配值。也就是说,此方法getHigh()
和getLow()
旨在读取范围的高低值,而不是对其进行设置。在类的情况下Range
,只能通过调用构造函数来设置这些值。
您可能想做的是Range
向Tree
类中添加类型的成员变量,然后在构造函数中设置该变量:
ran = new Range(plow, phigh);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句