上一篇的计算器的实现中并未采用面向对象的编程方法,而只是使用面向对象的语言
在做结构化的程序设计。使得程序不容易维护,不容易扩展,更不容易复用。
面向对象的思想是将现实世界的事物抽象为一个对象,利用多态、继承、封装抽象的
思想实现业务需要,最后通过整合各模块达到高内聚、低耦合的效果。
可是面向对象的好处又在哪里呢?
所有的优点都是通过对比才凸显的,面向对象编程和传统编程就好比印刷术和活字
印刷术.例如:我们我们需要草拟一份通知,并印刷多分,内容为"蛇年快乐"。
印刷术则是:
活字印刷术则是:
现实中客户的需求是实时变化的,可是已经也好的代码可能处于重头再来的尴尬局面.
究其原因,就是因为程序不易维护,不易扩展,灵活性差,所以就更谈不上复用了.采用面向
对象的编程的程序设计,通过封装、继承、多态降低程序的耦合度,使程序更易维护、更加
灵活、易于修改、复用性也就提高了。
对计算器采用面向对象的方法来实现,使界面和业务分开,降低耦合度,使之易扩展,
维护。
运算类:
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 } } }
转载于:https://blog.51cto.com/kiritor/1226806