我是面向对象编程的新手,我正在尝试声明和初始化left,但我不知道如何做到。我尝试了
left = new Counter(4, left.mod);
但是Netbeans说
不兼容的类型:int无法转换为数字
这不是真正的程序。
public class Number{
private int mod;
public Number(int modulus, Number left) {
mod = modulus;
//how to declare left?
}
您似乎正在尝试实现某种链表等。显然,您希望记住left,所以像声明类的任何其他正常属性一样声明它。
public class Number{
private Number left;
private int mod;
public Number(int modulus, Number left) {
mod = modulus;
this.left = left;
}
}
如果真的需要与一个类中具有相同名称的两个类交互,则必须使用完全限定名称来引用其中一个或另一个。因此,例如,如果您想在自己的Number
类中引用java.lang.Number
,您可以执行
public class Number{
private java.lang.Number left;
private int mod;
public Number(int modulus, java.lang.Number left) {
mod = modulus;
this.left = left;
}
}
(请注意,我对的强调实际上是,这表明,正如你可能已经猜到的那样,给一个类取与常用库类型相同的名称通常会更麻烦)。