现在的位置: 首页 > 综合 > 正文

面向对象

2013年10月16日 ⁄ 综合 ⁄ 共 1578字 ⁄ 字号 评论关闭

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

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

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

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

              

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

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

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

                  印刷术则是:

                        

              活字印刷术则是:

                       


     

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

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

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

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

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

    维护。

              运算类:

    

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
		}

	}
}

            

抱歉!评论已关闭.