上一篇的计算器的实现中并未采用面向对象的编程方法,而只是使用面向对象的语言

     在做结构化的程序设计。使得程序不容易维护,不容易扩展,更不容易复用。

             面向对象的思想是将现实世界的事物抽象为一个对象,利用多态、继承、封装抽象的

     思想实现业务需要,最后通过整合各模块达到高内聚、低耦合的效果。

              

             可是面向对象的好处又在哪里呢?


                    所有的优点都是通过对比才凸显的,面向对象编程和传统编程就好比印刷术和活字

       印刷术.例如:我们我们需要草拟一份通知,并印刷多分,内容为"蛇年快乐"。

                  印刷术则是:

                        

              活字印刷术则是:

                       


     

                  现实中客户的需求是实时变化的,可是已经也好的代码可能处于重头再来的尴尬局面.

      究其原因,就是因为程序不易维护,不易扩展,灵活性差,所以就更谈不上复用了.采用面向

      对象的编程的程序设计,通过封装、继承、多态降低程序的耦合度,使程序更易维护、更加

      灵活、易于修改、复用性也就提高了。


            对计算器采用面向对象的方法来实现,使界面和业务分开,降低耦合度,使之易扩展,

    维护。

              运算类:

    

package com.kiritor; /**  * 运算类*/ public class Operation { 	public static double getResult(double num1, double num2, String opr) { 		double result = 0; 		switch (opr) { 		case "+": 			result = num1 + num2; 			break; 		case "-": 			result = num1 - num2; 			break; 		case "*": 			result = num1 * num2; 			break; 		case "/": 			if (num2 == 0) { 				System.out.println("除数不能为零!"); 			} else { 				result = num1 / num2; 			} 			break; 		default: 			break; 		} 		return result; 	} } 
             主类:

 

package com.kiritor;  import java.io.BufferedReader; import java.io.Console; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Scanner;  /**  * 一个简单的+,-,*,/运算器 通过控制台进行读入和计算 基于正整数的  * */ public class Calculator { 	public static void main(String[] args) { 		try { 			System.out.print("请输入第一个数字:"); 			BufferedReader reader = new BufferedReader(new InputStreamReader( 					System.in)); 			double num1 = Double.parseDouble(reader.readLine()); 			System.out.print("\n请输入第二个数字:"); 			double num2 = Double.parseDouble(reader.readLine()); 			System.out.print("\n请输入运算符:"); 			String opr = reader.readLine(); 			System.out.println(Operation.getResult(num1, num2, opr)); 			  		} catch (Exception e) { 			// TODO: handle exception 		}  	} }