實現一個計算器:要求輸入2個數,和運算符,得到結果
Operation類package com.pb.demo1;public class Operation { PRivate double num1; private double num2; public double getResult(double num1,double num2){ double result=0; return result; } public double getNum1() { return num1; } public void setNum1(double num1) { this.num1 = num1; } public double getNum2() { return num2; } public void setNum2(double num2) { this.num2 = num2; } }加,減,乖,除,取模package com.pb.demo1;/* * 加法 */public class AddOperation extends Operation { @Override public double getResult(double num1, double num2) { return (num1+num2); }}package com.pb.demo1;/* * 減法 */public class Substruction extends Operation { @Override public double getResult(double num1, double num2) { return (num1-num2); } }package com.pb.demo1;/* * 乖法 */public class Multiplication extends Operation { @Override public double getResult(double num1, double num2) { return (num1*num2); } }
package com.pb.demo1;/* * 除法 */public class Division extends Operation { @Override public double getResult(double num1, double num2) { return (num1/num2); } }package com.pb.demo1;/* * 取余 */public class ModeOperation extends Operation { @Override public double getResult(double num1, double num2) { return (num1%num2); } }工廠類:package com.pb.demo1;/* * 簡單工廠類 */public class Factory { //返回類型 為類對象 public Operation getResult(String op){ Operation operation=null; //根據操作符來聲明對象并返回 switch (op){ case "+": operation=new AddOperation(); break; case "-": operation=new Substruction(); break; case "*": operation=new Multiplication(); break; case "/": operation=new Division();; break; case "%": operation=new ModeOperation(); break; default: System.err.println("輸入運算符不正確!"); break; } //返回生成的對象 return operation; }}測試類:package com.pb.demo1;import java.util.InputMismatchException;import java.util.Scanner;/* * 計算器 */public class Demo1 { public static void main(String[] args) { //聲明掃描器類型變量 Scanner input =new Scanner(System.in); //聲明工廠對象 Factory fac=new Factory(); try{ System.out.println("請輸入第一個整數:"); double num1=input.nextDouble(); System.out.println("請輸入第二個整數:"); double num2=input.nextDouble(); System.out.println("請輸運算符:+、-、*、/、%"); String op=input.next(); //接收工廠的返回對象 工廠根據操作符生成的對象 Operation operation=fac.getResult(op); //接收計算結果 double result=operation.getResult(num1, num2); //顯示計算結果 System.out.println(num1+"與"+num2+"的運行結果:"+result); }catch(InputMismatchException e){ System.err.println("輸入類型不正確!"); }catch(Exception e){ e.printStackTrace(); } }}新聞熱點
疑難解答