我已经获得了一项旨在测试计算器有效性的作业。他们给了我们一个默认类,看起来像这样:
public class Calculator {
Double x;
/*
* Chops up input on ' ' then decides whether to add or multiply.
* If the string does not contain a valid format returns null.
*/
public Double x(String x){
return new Double(0);
}
/*
* Adds the parameter x to the instance variable x and returns the answer as a Double.
*/
public Double x(Double x){
System.out.println("== Adding ==");
return new Double(0);
}
/*
* Multiplies the parameter x by instance variable x and return the value as a Double.
*/
public Double x(double x){
System.out.println("== Multiplying ==");
return new Double(0);
}
}
您可以扩展这个旨在成为测试工具的课程。以下说明如下:
以下是我目前所做的更改:
public class TestCalculator {
Double x;
/*
* Chops up input on ' ' then decides whether to add or multiply.
* If the string does not contain a valid format returns null.
*/
public Double x(String x){
return new Double(0);
}
public void testParsing() {
}
/*
* Adds the parameter x to the instance variable x and returns the answer as a Double.
*/
public Double x(Double x){
System.out.println("== Adding ==");
x("12 + 5");
return new Double(0);
}
/*
* Multiplies the parameter x by instance variable x and return the value as a Double.
*/
public Double x(double x){
System.out.println("== Multiplying ==");
x("12 x 5");
return new Double(0);
}
}
我最担心的是我如何能够调用实际方法,因为它们没有被赋予任何唯一的名称来调用,并且您无法更改方法的名称,因为这会更改数据类型。另外为什么他们使用String数据类型来添加和乘数?有关如何开始编写testParsers()方法的任何帮助都会非常有用。感谢。
答案 0 :(得分:1)
您正在处理的是方法重载。您有3个具有相同名称的方法,但它们具有不同的方法签名。要调用特定方法,只需传入适当的参数即可。在这种情况下,您可以:
Calculator c = new Calculator();
String string = "b";
Double doubleObject = 1;
double doublePrimitive = 2;
c.x(string);
c.x(doubleObject);
c.x(doublePrimitive);
Java将根据传入的参数调用正确的方法。
答案 1 :(得分:0)
Calculator c = new Calculator();
String p1 = "a";
Double p2 = 1;
double p3 = 2;
c.x(p1);
c.x(p2);
c.x(p3);
所有3个调用都会调用不同的方法。