1. 程式人生 > >抽象類-程式設計實現運算類(java)

抽象類-程式設計實現運算類(java)

結果是:68.0結果是:2.0

除數不能為0!

import java.util.Scanner;
abstract class Operation
{
     double numberA,numberB;
     abstract double getResult() throws Exception;
}
class AddOperation extends Operation
{
     double getResult() throws Exception
     {
          return numberA+numberB;
    }
}
class subOperation extends Operation
{
     double getResult() throws Exception
     {
          return numberA-numberB;
    }
}
class chengOperation extends Operation
{
     double getResult() throws Exception
     {
          return numberA*numberB;
    }
}
class DivideOperation extends Operation{
       double getResult() throws Exception
       {
           if(numberB==0)
                throw new Exception("除數不能為0!");
           return numberA/numberB;
       }
}
class OperationFactory{
       public static Operation createOperate(String operate)
       {
            if(operate.equals("+"))
                return new  AddOperation();
            if(operate.equals("-"))
                return new  subOperation();
            if(operate.equals("*"))
                return new  chengOperation();
            else //if(operate.equals("/"))
                 return new DivideOperation();
        }
}
public class Main{
     public static void main(String[] args)
     {
          double x,y,z;
          String op;
          Scanner in=new Scanner(System.in);
          while(in.hasNext())
           {
                 x=in.nextDouble();
                 op=in.next();
                y=in.nextDouble();
                Operation oper=OperationFactory.createOperate(op);
                oper.numberA=x;
               oper.numberB=y;
              try{
                     z=oper.getResult();
                     System.out.print("結果是:"+z);
              }
              catch(Exception e){
                   System.out.println(e.getMessage());
              }
          }
     }
}