java運用面向物件的思想實現計算器的小程式
阿新 • • 發佈:2019-01-09
其實,覺得最重要的就是這裡的這樣的一段核心程式碼。
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中,新增一段判斷程式碼即可。