面向对象-java控制台计算器简单实现[50行]
---恢复内容开始---
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.util.*; 2 public class Test{ 3 public static void main(String [] args){ 4 String add="add",sub="dub",mul="mul",div="div"; 5 // [需求] 写一个面向对象的计算器程序; 6 CalcuImpl test = new CalcuImpl(); 7 while(true){ 8 System.out.println("please input two any numbers?And one operatot example[14 add 15]"); 9 test.Operator(new Scanner(System.in).nextDouble(),new Scanner(System.in).nextDouble(),new Scanner(System.in).next()); 10 } 11 } 12 } 13 interface Calculator{ 14 public void Operator(double num1,double num2,String operator); 15 } 16 interface Operator{ 17 public double add(double num1,double num2); 18 public double sub(double num1,double num2); 19 public double mul(double num1,double num2); 20 public double div(double num1,double num2); 21 } 22 class OperaotrImpl implements Operator{ 23 public double add(double num1,double num2){ 24 return num1+num2; 25 } 26 public double sub(double num1,double num2){ 27 return num1-num2; 28 } 29 public double mul(double num1,double num2){ 30 return num1*num2; 31 } 32 public double div(double num1,double num2){ 33 34 return num1/num2; 35 } 36 } 37 class CalcuImpl implements Calculator{ 38 final static String ADD ="add",SUB="sub",MUL="mul",DIV="div"; 39 OperaotrImpl o = new OperaotrImpl(); 40 public void Operator(double num1,double num2,String operator){ 41 switch(operator){ 42 case ADD:System.out.println(o.add(num1,num2)); 43 break; 44 case SUB:System.out.println(o.sub(num1,num2)); 45 break; 46 case MUL:System.out.println(o.mul(num1,num2)); 47 break; 48 case DIV:System.out.println(o.div(num1,num2)); 49 break; 50 } 51 } 52 }
有点基础的看看吧,都很简单,所以没写注释;
---恢复内容结束---
import java.util.*; public class Test{ public static void main(String [] args){ String add="add",sub="dub",mul="mul",div="div"; // [需求] 写一个面向对象的计算器程序; CalcuImpl test = new CalcuImpl(); while(true){ System.out.println("please input two any numbers?And one operatot example[14 15 add]"); test.Operator(new Scanner(System.in).nextDouble(),new Scanner(System.in).nextDouble(),new Scanner(System.in).next()); } } } interface Calculator{ public void Operator(double num1,double num2,String operator); } class Operator{ public double add(double num1,double num2){return 0.0;} public double sub(double num1,double num2){return 0.0;} public double mul(double num1,double num2){return 0.0;} public double div(double num1,double num2){return 0.0;} } class OperaotrImpl extends Operator{ // 继承可以减少代码 的冗余,需要哪个就 Override父类的方法; public double add(double num1,double num2){ return num1+num2; } public double sub(double num1,double num2){ return num1-num2; } public double mul(double num1,double num2){ return num1*num2; } public double div(double num1,double num2){ return num1/num2; } } class CalcuImpl implements Calculator{ final static String ADD ="add",SUB="sub",MUL="mul",DIV="div"; OperaotrImpl o = new OperaotrImpl(); public void Operator(double num1,double num2,String operator){ switch(operator){ case ADD:System.out.println(o.add(num1,num2)); break; case SUB:System.out.println(o.sub(num1,num2)); break; case MUL:System.out.println(o.mul(num1,num2)); break; case DIV:System.out.println(o.div(num1,num2)); break; } } }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 import java.util.*; 2 public class Test{ 3 public static void main(String [] args){ 4 String add="add",sub="dub",mul="mul",div="div"; 5 // [需求] 写一个面向对象的计算器程序; 6 CalcuImpl test = new CalcuImpl(); 7 while(true){ 8 System.out.println("please input two any numbers?And one operatot example[14 add 15]"); 9 test.Operator(new Scanner(System.in).nextDouble(),new Scanner(System.in).nextDouble(),new Scanner(System.in).next()); 10 } 11 } 12 } 13 interface Calculator{ 14 public void Operator(double num1,double num2,String operator); 15 } 16 interface Operator{ 17 public double add(double num1,double num2); 18 public double sub(double num1,double num2); 19 public double mul(double num1,double num2); 20 public double div(double num1,double num2); 21 } 22 class OperaotrImpl implements Operator{ 23 public double add(double num1,double num2){ 24 return num1+num2; 25 } 26 public double sub(double num1,double num2){ 27 return num1-num2; 28 } 29 public double mul(double num1,double num2){ 30 return num1*num2; 31 } 32 public double div(double num1,double num2){ 33 34 return num1/num2; 35 } 36 } 37 class CalcuImpl implements Calculator{ 38 final static String ADD ="add",SUB="sub",MUL="mul",DIV="div"; 39 OperaotrImpl o = new OperaotrImpl(); 40 public void Operator(double num1,double num2,String operator){ 41 switch(operator){ 42 case ADD:System.out.println(o.add(num1,num2)); 43 break; 44 case SUB:System.out.println(o.sub(num1,num2)); 45 break; 46 case MUL:System.out.println(o.mul(num1,num2)); 47 break; 48 case DIV:System.out.println(o.div(num1,num2)); 49 break; 50 } 51 } 52 }
有点基础的看看吧,都很简单,所以没写注释;