在与类和数据类型同名的方法中声明和初始化

时间:2014-09-23 02:27:30

标签: java class variables netbeans

我是面向对象编程的新手,我正在尝试声明并初始化左,但我不知道该怎么做。我试过了

left = new Counter(4, left.mod);

但是Netbeans说的是

  

不兼容的类型:int无法转换为Number

这不是真正的计划。

public class Number{

    private int mod;
    public Number(int modulus, Number left) {
        mod = modulus;
        //how to declare left?
    }

2 个答案:

答案 0 :(得分:2)

看起来你正在尝试实现某种链表等。显然你想要留下来记住它,所以声明它就像这个类的任何其他普通属性一样。

public class Number{
    private Number left;
    private int mod;
    public Number(int modulus, Number left) {
        mod = modulus;
        this.left = left;
    }
}

答案 1 :(得分:1)

如果确实需要与类中具有相同名称的两个类进行交互,则必须使用完全限定名称来引用其中一个。因此,如果您想在自己的java.lang.Number课程中引用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;
    }
}

(请注意,我对真正的强调表明,正如您可能已经猜到的那样,给一个与常用库类型相同的名称通常比给它的值更麻烦) 。