1. 程式人生 > >java運用面向物件的思想實現計算器的小程式

java運用面向物件的思想實現計算器的小程式

其實,覺得最重要的就是這裡的這樣的一段核心程式碼。

package org.lenovo.demo;

public class OperationFactory {
	public static Operation createOperation(String operate){
		Operation oper = null;
		switch(operate){
		case "+":
			oper = new AddOperation();
			break;
	
		case "-":
			oper = new SubOperation();
			break;
			
		case "*":
			oper = new MulOperation();
			break;
			
		case "/":
			oper = new DivOperation();
			break;
		}
		return oper;		
	}
}

在上面的這一段程式碼中,其中Operation是定義的一個介面,如下所示:

package org.lenovo.demo;

public interface Operation {
	public double getResult(double numA , double numB);
}

而對於加法、減法、乘法、除法以及取餘等操作,都是分別定義的一個類,而對於這個類又實現了Operation介面。如下所示:

package org.lenovo.demo;
public class AddOperation implements Operation {
	public double getResult(double numA, double numB){
		return numA + numB;
	}
}

所以,對於OperationFactory類中,通過對於操作符號的一個switch.....case判斷,來選擇相應的子類進行例項化介面的操作。而在Main方法中,對於此功能的核心呼叫程式碼如下:

oper = OperationFactory.createOperation(operate);

result = oper.getResult(numA, numB);

其中對於oper物件、operate(String)字串、以及double型別的numA, numB在之前已經定義好了。

小結:關於Java多型性的描述,可以理解為一個介面,多個方法。當我們需要例項化此接

           口的時候,通過具體的情況用相應的子類來例項化。這樣被例項化的物件所呼叫的方

           法就是就是子類所覆寫的方法,從而來達到了這一要求。而在這個程式中,如果我們

          需要定義一個取模的操作,也是隻需要定義一個類實現Operation介面,然後

          在OperationFactory中,新增一段判斷程式碼即可。