如何用物件導向的方法來描述四則運算表示式
前幾天面試碰到一道題,當時沒有做,忽然想了起來,如下<BR><BR><BR>四則運算表示式的例子是 1 + 5,或者是 ( 2 + 6 ) / ( 4 - 2 )。<BR><BR>如何用物件導向的方法來描述四則運算表示式.<BR><BR>分析如下: <BR> 看起來有三個物件 數值 ,運算子,表示式(如1+5,( 2 + 6 ) / ( 4 - 2 )都是表示式),因為數值和<BR> 和表示式擁有一樣的特性,都是靠運算子連線起來,可提出公共介面(在沒有把數值和表示式的關係找到的時候,我的思考完全進行不下去).<BR><BR>Biao.java 表示式介面<BR>BiaoB.java 非數值表示式 實現Biao.java<BR>BiaoValue.java 數值表示式 實現Biao.java<BR><BR><BR>Fu.java 運算子介面 <BR>FuPlus.java 加運算子 實現Fu.java<BR>FuC.java 乘運算子 實現Fu.java<BR>FuJ.java 減運算子 實現Fu.java<BR><BR><BR>測試 5- 2*(3+4)<BR>class Main {<BR> public static void main(String[] a) {<BR> Fu plusFu = new FuPlus();<BR> Biao bV1 = new BiaoValue(3);<BR> Biao bV2 = new BiaoValue(4);<BR> Biao b = new BiaoB(bV1,bV2,plusFu); //3+4<BR> System.out.println("==="+b.result());<BR> <BR> <BR> Biao bV3 = new BiaoValue(2);<BR> Biao bb = new BiaoB(bV3,b,new FuC()); //2*(3+4)<BR> System.out.println("==="+bb.result());<BR> <BR> Biao bV4= new BiaoValue(5);<BR> Biao bbb = new BiaoB(bV4,bb,new FuJ()); 5- 2*(3+4)<BR> <BR> System.out.println("==="+bbb.result());<BR> }<BR>}<BR><BR> <BR><BR>類程式碼:<BR><BR> interface Biao{<BR> int result() ;<BR>}<BR><BR> class BiaoB implements Biao {<BR> Biao b1;<BR> Biao b2;<BR> Fu fu;<BR> BiaoB(Biao b1,Biao b2,Fu fu){<BR> this.b1 = b1;<BR> this.b2 = b2;<BR> this.fu = fu;<BR> }<BR> public int result() {<BR> if(fu==null) return b1.result();<BR> return fu.result(b1,b2);<BR> }<BR>}<BR><BR>class BiaoValue implements Biao {<BR> int i;<BR> BiaoValue(int i){<BR> this.i = i;<BR> }<BR> public int result() {<BR> return i;<BR> }<BR>}<BR><BR> <BR><BR>interface Fu {<BR> int result(Biao b1,Biao b2);<BR>}<BR><BR>public class FuC implements Fu{<BR> public int result(Biao b1,Biao b2) {<BR> return b1.result() * b2.result();<BR> }<BR>}<BR><BR>public class FuJ implements Fu{<BR> public int result(Biao b1,Biao b2) {<BR> return b1.result() - b2.result();<BR> }<BR>}<BR>class FuPlus implements Fu{<BR> public int result(Biao b1,Biao b2) {<BR> return b1.result() + b2.result();<BR> }<BR>}<BR><BR>
相關文章
- 用物件導向的方式操作 JSON 甚至還能做四則運算 JSON 庫物件JSON
- 【資料結構】棧的應用---四則運算表示式求值(中綴表示式與字尾表示式轉換)資料結構
- 四則運算
- Python的運算物件、運算子、表示式和語句Python物件
- 物件導向基本原則物件
- 物件導向OO原則物件
- 物件導向的設計原則物件
- Perl的物件導向方法物件
- 四則運算的開發
- 四則運算計算器
- 物件導向設計原則物件
- php鏈式操作實現四則鏈式運算PHP
- 一種高效的 vector 四則運算處理方法
- [.net 物件導向程式設計進階] (4) 正規表示式 (三) 表示式助手物件程式設計
- 物件導向的基本設計原則物件
- python--表示式(運算表示式)Python
- 四則運算GUI版本GUI
- 四則運算小程式
- 四則運算----封裝封裝
- 安卓版四則運算安卓
- 四則運算——安卓版安卓
- 四則運算專案
- 四則運算手冊
- 《JavaScript物件導向精要》之四:建構函式和原型物件JavaScript物件函式原型
- [記錄] 通用封裝函式——四則運算封裝函式
- [.net 物件導向程式設計基礎] (6) 基礎中的基礎——運算子和表示式物件程式設計
- go物件導向方法的呼叫Go物件
- 前端筆記之JavaScript物件導向(二)內建建構函式&相關方法|屬性|運算子&繼承&物件導向前端筆記JavaScript物件函式繼承
- 物件導向之 開閉原則物件
- 物件導向設計原則概述物件
- 物件導向設計(OOD)原則物件
- js實現四則計算(中綴,字尾表示式)JS
- Java中物件導向的設計原則Java物件
- 物件導向的六大原則物件
- 物件導向程式設計的基本原則物件程式設計
- 不止於物件導向的SOLID原則物件Solid
- 物件導向的編碼設計原則物件
- [Java物件導向]static方法Java物件