如何创建返回类型为类的方法的返回值?这是一种查找两个数字之和的方法。 number对象是在另一个类中创建的,必须将其添加到'other'参数中。我不确定我是否正确地创建了该方法。如果类型是类,你将如何创建正确的返回值?
public class Number {
private double a;
private double b;
public Number (double _a, double _b) {
a = _a;
b = _b;
}
public Number sum(Number other) {
a = this.a + other.b;
b = this.b + other.b;
return ;
}
}
答案 0 :(得分:4)
如何创建返回类型为类的方法的返回值?
与处理任何其他参考用途的方式相同。
在您的情况下,您可以将代码更改为:
return this;
然而,将添加给定的数字添加到现有的数字中,改变您调用方法的对象...有点像StringBuilder.append
。
我怀疑最好不要更改任何一个号码,而是创建一个新号码:
public Number sum(Number other) {
return new Number(this.a + other.a, this.b + other.b);
}
(目前你根本没有使用other.a
,但我认为这是一个错字。)
除了其他任何东西,你可以通过这种方式使你的类型不可变,这通常会让事情变得更容易理解。为此,请创建字段final
并创建类final
。我个人也会将方法名称更改为plus
,但这是个人偏好的问题。
答案 1 :(得分:0)
在Java中,您只能返回类型为class的对象。
public Number sum(Number other,Number nobj) {
a = nobj.a + other.b;
b = nobj.b + other.b;
return nobj;
}
答案 2 :(得分:0)
如果您关注的是返回传递给sum方法的相同类型(包括子类),您可以检查参数并返回该类型之一。
像...一样的东西。
public class Number {
private double a;
private double b;
private Number () {}
public Number (double _a, double _b) {
a = _a;
b = _b;
}
public Number sum(Number other) throws Exception {
a = this.a + other.b;
b = this.b + other.b;
Number n = other.getClass().newInstance();
n.a = a;
n.b = b;
return n;
}
}
注意我也必须添加一个no-arg构造函数。