要求
假设现有类的可用性,即iCalculator,该类别对整数算术计算器进行建模,并包含:
-
一个存储当前int值的实例变量CurrentValue计算器的大量,可以通过任何子类访问和修改。
-
方法添加,sub,mul和div
iCalculator中的每种方法都会收到一个INT参数,并将其操作应用于CurrentValue并返回CurrentValue的新值。因此,如果CurrestValue具有值8和sub(6),则CurrentValue最终以值2,然后返回2。
因此,您要根据iCalculator编写子类iCalculator2的定义。类iCalculator2还有一种附加方法,否定,没有任何论点。否定的效果是扭转电流值的迹象。例如,如果CurrestValue为零,则没有更改,如果是-22,则它将变为22,如果它为100,则变为-100。此外,否定还返回CurrentValue的新值。
源代码
public class ICalculator2 extends ICalculator {
public int negate() {
int val = add(0);
if (val == -22) return val * -1;
else if (val == 100) return val * -1;
else return 0;}}
备注:
- 您的代码在执行过程中有错误
更多提示:
您可能需要使用100
以外的数字您可能要使用22
以外的数字您确定要使用:val
提示:
- 您可能想使用:<
- 您确定要使用:=
您不需要执行任何奇怪的计算。改用此方法:
public class ICalculator2 extends ICalculator {
public int negate() {
return (currentValue = -currentValue);
}
}
您通过操纵iCalculate类中为您提供的方法来执行此操作。请记住,您不能直接使用实例变量CurrentValue,因为它是私有变量,并且子类只能通过方法访问私有变量。在这种情况下,操纵的最佳方法是mul(),参数为-1。
public int negate(){
返回mul(-1);}
我刚刚注意到,您正在尝试扩展应扩展应常规上的是接口。那行不通。您实现接口。
请尝试此问题将帮助您解决此问题
int i = -22;
i = i*-1;
System.out.println(i);
return i;
您获得的数字就是一个示例。如果有一个使用任何其他数字的真实表,您的示例将失败。这就是为什么代码存在问题的原因。您需要使用显示CurrentValue不是0时发生的代码。
查看以下内容:
public class ICalculator2 extends ICalculator {
public int negate() {
if (currentValue != 0) {
return currentValue * -1;}
else {
return 0;
}
}
}
花花公子你已经错了。
公共类iCalculator2扩展了iCalculator {
public int negate(){
int val =mul(-1);
return val;}}
你看到了吗?-22和100是例子,它们无关紧要。关键是您需要否定它的一切。