java如何重写方法,将一个实例变量和一个局部变量相加,从而生成一个数据类型为Double的新变量?
在我的作业中,我被要求创建两种方法。这两种方法被称为“addx()”和“testParsing()”。这两种方法的目的如下
addx()方法
- 使用名为“x”的实例变量和名为“x”的局部变量计算12+5。(任务涉及范围)
- 进行加法的方法应该通过参数x添加实例变量x
- 返回一个新的Double()李>
testParsing()方法
- 测试x(“12+5”)是否返回值为17的双精度
虽然结果是一样的,但我目前使用的addx()和testParsing()方法与此不同。到目前为止,我的做法是:
public Double addx(double x)
{
System.out.println("== Adding ==");
this.x = x;
return new Double(x + 5);
}
public void testParsing()
{
if (addx(12.00) == 17.0) {
System.out.println("Adding Success");
} else {
System.out.println("Adding Fail");
}
}
如你们所见,我并没有把一个实例变量和一个局部变量加在一起。我已经将实例变量定义为局部变量ad加上了5,这不是所要求的。我正在寻找一种方法来重新编写它,这样addx方法adds()方法将实例变量(应该等于12)和局部变量(应该等于5)相加为17,并返回一个新的Double类型的值(我不确定为什么它是object Double类型,而不是primitive Double,但这就是我们所指示的
以下是我重新正确编写方法的尝试:
public Double addx(double x) {
System.out.println("== Adding ==");
this.x = 12.00;
x = 5.00;
return new Double();//how do I make the value be stored in this Double()?
}
public void testParsing()
{
if (addx("12 + 5") == "17.0")//error string cannot be converted to double?
{
System.out.println("Adding Success");}
else {
System.out.println("Adding Fail");
}
}
我知道这种尝试毫无意义,但我一直在想如何解决它
为了澄清:
- 我想让addx()将实例变量x添加到参数x中
- testParsing()应该测试“12+5”加起来是否等于17李>
谢谢
# 1 楼答案
addx()
这里有几件事:
sysout
语句表明你认为自己在乘法。你不是——你在添加两个数字并返回结果李>this.x = x;
-我不确定你想要完成什么。实际上,您是在用局部变量“x”的值覆盖实例变量“x”的值李>在没有给出答案的情况下,这里有几件事需要解释。在方法
addx()
中,x
引用局部变量。因此,如果使用addx(10);
调用该方法,x
等于10。要引用实例变量,必须使用this.x
。因此,如果实例变量等于1,并且调用addx(10);
,则预期返回值为11.0
。知道在方法体中,x
是10
,而this.x
是1
,您如何实现这个结果testParsing()
该方法的目的是为
addx()
方法创建一个单元测试。它想让你测试代码。因此,其中一个变量必须是12
,另一个必须是5
。您可以执行以下操作:5
分配给实例变量x
李>12
调用addx()
李>addx()
的返回值赋值给Double
李>17.0
李>例如,可以使用断言或抛出断言错误来完成验证。讲师是否提供了关于如何进行验证的更多细节