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



我是面向对象编程的新手,我正在尝试声明和初始化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;
    }
}

(请注意,我对的强调实际上是,这表明,正如你可能已经猜到的那样,给一个类取与常用库类型相同的名称通常会更麻烦)。

相关内容

  • 没有找到相关文章

最新更新