呆呆的计算器(version 1.0)
这段代码是来自大话,小菜最开始的面试代码。小菜是一个小白。嗯,小菜果然是个小白。小菜好白。
public class Program {
public static void main(String[] args) {
int result = 0;
System.out.println("请输入数字A");
String a = "123";
System.out.println("请选择运算符号(+、-、*、/):");
String b = "+";
System.out.println("请输入数字B");
String c = "321";
String d = "";
if (b.equals("+"))
result = Integer.parseInt(a) + Integer.parseInt(c);
c = result + "";
System.out.println(c);
}
}
呆呆计算器(version 2.0)
老鸟说小菜,写的代码不规范。不是一个合格的牛马。然后小菜励志要做一个合格的牛马,然后改了一版。
规范了命名。
public class Program2 {
public static void main(String[] args) {
System.out.println("请输入数字A");
String strNumberA = "123";
System.out.println("请选择运算符号(+、-、*、/):");
String strOperate = "+";
System.out.println("请输入数字B");
String strNumberB = "321";
String strResult = "";
int result = 0;
switch (strOperate) {
case "+" :
result = Integer.parseInt(strNumberA) + Integer.parseInt(strNumberB);
break;
case "-" :
result = Integer.parseInt(strNumberA) - Integer.parseInt(strNumberB);
break;
case "*" :
result = Integer.parseInt(strNumberA) * Integer.parseInt(strNumberB);
break;
case "/" :
if (!strNumberB.equals("0"))
result = Integer.parseInt(strNumberA) / Integer.parseInt(strNumberB);
else
strResult = "除数不能为0";
break;
}
System.out.print("结果是 :" + result);
System.out.println(strResult);
}
}
呆呆计算器(version 3.0)
把逻辑计算代码与用户界面代买分离
public class Operation {
public static double getResult(double numberA, double numberB, String operate) {
double result = 0;
switch (operate) {
case "+" : result = numberA + numberB;
break;
case "-" : result = numberA - numberB;
break;
case "*" : result = numberA * numberB;
break;
case "/" : result = numberA / numberB;
break;
}
return result;
}
}
public class Program3 {
public static void main(String[] args) {
System.out.println("请输入数字A");
String strNumberA = "123";
System.out.println("请选择运算符号(+、-、*、/):");
String strOperate = "+";
System.out.println("请输入数字B");
String strNumberB = "321";
String strResult = "";
strResult =
"" + (Operation.getResult(Double.parseDouble(strNumberA), Double.parseDouble(strNumberB), strOperate));
System.out.print("结果是 :" + strResult);
System.out.println(strResult);
}
}
呆呆计算器(version 4.0) 大招来了
基类将不变的东西放在基类,将变化的东西放在子类。
public abstract class Operation2 {
public double numberA = 0;
public double numberB = 0;
public double result = 0;
public double getNumberA() {
return numberA;
}
public void setNumberA(double numberA) {
this.numberA = numberA;
}
public double getNumberB() {
return numberB;
}
public void setNumberB(double numberB) {
this.numberB = numberB;
}
public abstract double getResult_();
}
加法计算子类
public class OperationAdd extends Operation2 {
@Override
public double getResult_() {
result = numberA + numberB;
return result;
}
}
减法计算子类
public class OperationSub extends Operation2 {
@Override
public double getResult_() {
result = numberA - numberB;
return result;
}
}
乘法计算子类
public class OperationMul extends Operation2 {
@Override
public double getResult_() {
result = numberA * numberB;
return result;
}
}
除法计算子类
public class OperationDiv extends Operation2 {
@Override
public double getResult_() {
if (numberB != 0)
result = numberA / numberB;
else
// throw new Exception("除数不能为0");
System.out.println("除数不能为0");
return result;
}
}
工厂类 工厂类 工厂粪
public class OperationFactory {
public static Operation2 operation = null;
public static Operation2 createOperation(String opera) {
switch (opera) {
case "+" : operation = new OperationAdd();
break;
case "-" : operation = new OperationSub();
break;
case "*" : operation = new OperationMul();
break;
case "/" : operation = new OperationDiv();
break;
}
return operation;
}
Please see the magic
public class Program4 {
public static void main(String[] args) {
Operation2 operation = null;
operation = OperationFactory.createOperation("+");
operation.setNumberA(123);
operation.setNumberB(321);
System.out.println("" + operation.getResult_());
}
}
真他么简洁,这就是艺术!This is art.
image.png