对于我的任务,我被要求创建两种方法。这两种方法称为" addx()"和" testParsing()"。这两种方法的目的如下
addx()方法
testParsing()方法
我现在已经完成了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");
}
}
正如您所看到的,我没有将实例变量和局部变量添加到一起。我已经将实例变量定义为在其上添加5的局部变量ad,这不是所要求的。我正在寻找一种方法来重写这个,以便addx方法add()方法添加应该等于12的实例变量和应该等于5的局部变量一起等于17并返回一个新值类型为Double(我不确定为什么它是类型对象Double而不是原始的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");
}
}
我知道这种尝试没有意义,但我仍然坚持如何解决它。
所以澄清一下:
感谢。
答案 0 :(得分:0)
<强> addx()
强>
public Double addx(double x)
{
System.out.println("== Multiplying ==");
this.x = x;
return new Double(x + 5);
}
这里几件事:
sysout
声明表明您认为自己正在乘以数字。你不是 - 你要添加两个数字并返回结果。this.x = x;
- 我不确定你要完成什么。你实际上是在覆盖实例变量&#39; x&#39;的价值。使用本地变量的值&#39; x&#39;。如果没有给你答案,这里有几点需要解释。在方法addx()
中,x
引用局部变量。因此,如果使用addx(10);
调用方法,x
等于10.要引用实例变量,必须使用this.x
。因此,如果您的实例变量等于1,并且您调用addx(10);
,则您希望返回值为11.0
。如果知道在方法体内,x
为10
,this.x
为1
,您如何才能实现这一结果?
<强> testParsing()
强>
此方法的目的是为addx()
方法创建单元测试。它希望您测试该代码。因此,您的一个变量必须是12
,另一个必须是5
。您可以执行以下操作:
5
分配给您的实例变量x
; addx()
; 12
addx()
的返回值分配给Double
; 17.0
。例如,可以使用断言或抛出AssertionError来完成验证。教师是否提供了有关如何进行验证的更多详细信息?