📄 numbervalue.java
字号:
public class NumberValue extends Value {
private int value;
NumberValue() {
value = 0;
}
NumberValue(int i) {
value = i;
}
boolean isNumber() {
return true;
}
int numberValue() {
return value;
}
boolean isOfType(String typeName) {
return typeName.equals("int");
}
public String toString() {
return "" + value;
}
Value plus(Value v) throws InterpreterException {
if (!v.isNumber())
throw new InterpreterException(
"This type does not support addition.");
return new NumberValue(value + ((NumberValue) v).numberValue());
}
Value minus(Value v) throws InterpreterException {
if (!v.isNumber())
throw new InterpreterException(
"This type does not support substraction.");
return new NumberValue(value - ((NumberValue) v).numberValue());
}
Value multipliedBy(Value v) throws InterpreterException {
if (!v.isNumber())
throw new InterpreterException(
"This type does not support multiplication.");
return new NumberValue(value * ((NumberValue) v).numberValue());
}
Value dividedBy(Value v) throws InterpreterException {
if (!v.isNumber())
throw new InterpreterException(
"This type does not support division.");
if (((NumberValue) v).value == 0)
throw new InterpreterException("Division by zero.");
return new NumberValue(value / ((NumberValue) v).numberValue());
}
Value isLess(Value v) throws InterpreterException {
if (!v.isNumber())
throw new InterpreterException(
"This type does not support less comparison.");
return new BooleanValue(value < ((NumberValue) v).numberValue());
}
Value isGreater(Value v) throws InterpreterException {
if (!v.isNumber())
throw new InterpreterException(
"This type does not support greater comparison.");
return new BooleanValue(value > ((NumberValue) v).numberValue());
}
Value isEqual(Value v) throws InterpreterException {
if (!v.isNumber())
throw new InterpreterException(
"This type does not support equation.");
return new BooleanValue(value == ((NumberValue) v).numberValue());
}
Value negate() throws InterpreterException {
return new NumberValue(-value);
}
Value assign(Value v) throws InterpreterException {
if (!v.isNumber())
throw new InterpreterException("wrong type.");
this.value = ((NumberValue) v).numberValue();
return this;
}
Value cloneValue() {
return new NumberValue(value);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -