克隆方法Java

时间:2014-04-21 21:14:18

标签: java class copy-constructor rational-numbers

我试图创建一个克隆方法,该方法将采用已经创建的Rational并制作副本,以便在我的主要内容中我可以执行以下操作:

Rational r3 = new Rational(r1);

到目前为止,我在Rational类中创建了一个方法,它将一个rational作为参数;但是我不确定如何让新实例看起来就像参数一样。

public Rational copy(Rational aRational) {
int newNum = aRational.n;
 int newDenom = aRational.d;
 return (new Rational(newNum, newDenom));

}

非常感谢任何帮助或见解!!

1 个答案:

答案 0 :(得分:3)

  

在我的主要内容中[我想]做这样的事情:Rational r3 = new Rational(r1);

这不是克隆,这是一个以Rational为参数的构造函数。你可以这样做:

public Rational(Rational other) {
    n = other.n;
    d = other.d;
}

这将允许您使用代码从现有实例构建Rational的新实例。

注意:您的班级中的nd似乎都会作为公共变量向您的班级用户展示。这并不理想,因为您无法控制类的用户可能对其实例变量所做的修改。更好的方法是使它们private,并为您的类添加getter和setter。这种方法可以让你检测将分母设置为零的尝试,这可能是理想的。