计算机与工程问题解析导论.ppt
文本预览下载声明
計算機與工程問題解析導論 第六課 實驗室時間:類別與物件 重點觀念的複習 類別與物件 – 它們有何不同 新的運算子 對物件的參考 建構子方法 點(dot)運算子 – 喚起物件的方法與存取物件的public資料成員 使用BigInteger 類別(編註:random與for random漏譯,已改正) 練習一:現有的類別 利用BigDecimal類別(浮點數)來: 建構 BigDecimal a=13 x 10500 以亂數建構 BigDecimal b 提示:建構一個隨意的BigInteger,然後使用適當的BigDecimal建構子。詳見Javadoc。 計算 BigDecimal c = a+b 計算 BigDecimal d = c/a 在Javadoc中查詢進位的型式 分別計算出a,b,c,d 後將結果列印出來 練習一:現有的類別(續) 階段式地撰寫程式: 建構 a, 將結果印出來。編譯及除錯 千萬不要去數到底有多少個零! 再建構 b,將結果印出來。編譯及除錯 計算其相加與相除。編譯及除錯 練習二:撰寫一個類別 在家庭作業中,你將要開始撰寫自己的類別。 你已經在所有的練習中看過類別的示範,但它們並不是典型的 它們都只有單一的方法, main() 大部份的類別是沒有main( )這個方法的 建立一支程式,你將要撰寫數個類別,而其中一個包含有main( )的方法。 Point 類別 Point 類別, main( ) 練習二 使用極座標來取代卡氏座標,撰寫一個不同的SimplePoint 類別。 如前述SimplePoint類別般地執行相同的public方法 使用 r 及 theta 做為private 資料欄位 回顧: x = r cos(theta) y = r sin(theta) r = sqrt(x2 + y2) theta= tan-1(y/x) 使用Java的Math類別(字首為大寫 M) 使用 Math.atan2( ) 來表示 反正切函數 的功能 使用與前述相同的main( ) 。 為何要做這練習? 透過建立一個具有public方法但含有private資料的類別,你只是指定一個介面,而非執行。 如果你要改變執行,你可以用這樣的方式來做而且不用修改相關的程式碼,只要維持介面(set of methods)相同。 變更座標系統、計算方法等是相當平常的,如同這個範例一樣。這樣可讓軟體保有彈性來成長與改變。 練習三 – 使用Point類別 建立一個名稱為Rectangle的新類別,類別內含兩個Point物件,一個是左上角,另一個是右下角 撰寫方法 setUpperLeft() 及 setLowerRight,其引數為雙精度的值。 撰寫方法getArea() ,它可以傳回雙精度的矩型面積。 Java? 是Sun Microsystems, Inc.在美國及其他國家的註冊商標。 給 BigInteger 使用 nbr 亂數產生器 c=b+a 質數 為使用亂數而引入 取得亂數 public class SimplePoint { private double x, y; // 資料成員 public SimplePoint() { // 建構子 x= 0.0; y= 0.0; } // 方法 public double getX() { return x;} public double getY() { return y;} public void setX(double xval) { x= xval;} public void setY(double yval) { y= yval;} public void move(double deltaX, double deltaY) { x += deltaX; y += deltaY; } } // SimplePoint 類別的結束 // 這並不是一支程式,因為它沒有main( ) // 但是可以藉由main( )於類別中使用
显示全部