有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    addx()

    public Double addx(double x)
    {
            System.out.println("== Multiplying ==");
            this.x = x;
            return new Double(x + 5);
    }
    

    这里有几件事:

    1. 你的sysout语句表明你认为自己在乘法。你不是——你在添加两个数字并返回结果
    2. this.x = x;-我不确定你想要完成什么。实际上,您是在用局部变量“x”的值覆盖实例变量“x”的值
    3. 为什么你要返回一个双倍,而你要在x上加5

    在没有给出答案的情况下,这里有几件事需要解释。在方法addx()中,x引用局部变量。因此,如果使用addx(10);调用该方法,x等于10。要引用实例变量,必须使用this.x。因此,如果实例变量等于1,并且调用addx(10);,则预期返回值为11.0。知道在方法体中,x10,而this.x1,您如何实现这个结果

    testParsing()

    该方法的目的是为addx()方法创建一个单元测试。它想让你测试代码。因此,其中一个变量必须是12,另一个必须是5。您可以执行以下操作:

    • 5分配给实例变量x
    • 用参数12调用addx()
    • addx()的返回值赋值给Double
    • 验证double是否等于17.0

    例如,可以使用断言或抛出断言错误来完成验证。讲师是否提供了关于如何进行验证的更多细节