廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 3985 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
rakish
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x18
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[Java] JAVA 資料結構 ADT??
import java.io.*;
public class DS_Ratinoal{
public static void main(String args[]){
Ratinoal a = new Ratinoal(34,10);
Ratinoal b = new Ratinoal(3,5);

System.out.println(a.m+"/"+a.n);
System.out.println(b.m+"/"+b.n);
Ratinoal c = min(add(a,b));
System.out.println("add="+c.m+"/"+c.n);
Ratinoal d = min(sub(a,b));
..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



人一但長大了
就發現世上的事不像想的那麼好
你總是會一天天長大的
會看得越來越清楚
獻花 x0 回到頂端 [樓 主] From:台灣 | Posted:2005-11-25 14:51 |
youchun
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x26
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

建議把 m, n 設成 private
只透過 Rational object 來處理
不過就必須使用 getter, setter
雖然設計上不錯
可是就小程式而言會顯得麻煩

加減之類的函式可以併入 Rational
視為其設計上得一部分
也可以試試看用 toString() 簡化一些流程

如果要保留其值的話可考慮複寫 clone()
甚至可以仿照 String class 設為 final
複製程式
class Rational{
       int m;
       int n;
       public Ratinoal(int m,int n){this.m=m;this.n=n;}

       /* System.out.println(<Rational obj>) */
       public String toString() {
         return String.valueOf(m) + "/" + String.valueOf(n);;
       }
       public void add(Rational r) {}
       /* alternative
        * public Rational add(Rational r) { return new Rational(...);}
        */
}


獻花 x1 回到頂端 [1 樓] From:台灣中華電信 | Posted:2005-11-25 17:00 |
rakish
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x18
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

可是這樣感覺就怪怪的...
現在的運算是Rational + Rational
現在把運算寫在Rational 的類別裡面?? a.add(b) ??

還是寫一個繼承出來?

另外就是..java的好像沒有指標的樣子??
他的link list 是用什麼方法阿??
感謝!!


人一但長大了
就發現世上的事不像想的那麼好
你總是會一天天長大的
會看得越來越清楚
獻花 x0 回到頂端 [2 樓] From:台灣 | Posted:2005-11-26 17:22 |
youchun
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x26
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

1)
因為 Java 不像 C++ 可以自由地作 operator overloading
使用 a.add(b) 比較可行, 也可搭配
複製程式
public class Rational {
    public Rational add(Rational r) {
        ...
        return this;
    }
}
如此以來便可以 a.add(b).add(c).add(d);
不過 a 的值亦會改變

如果要不可變, 可採以下方法
不過不可被繼承
複製程式
public final class Rational {
    public Rational add(Rational r) {
        ...
        return new Rational(...);
    }
}

2)
Java 除了 primitive type 外都是 Object
primitive type 如 int, boolean, double, etc..
wrapper object 有 Integer, Boolean, Double, etc..
primitive type 存放在 stack, 包括 object reference
object 實際上存放在 heap, 透過 object reference 操作
也有人認為這實際上還算是指標, 不過建議還是視為物件來處理

3)
linkedlist 請參閱 API doc java.util.LinkedList


獻花 x0 回到頂端 [3 樓] From:台灣中華電信 | Posted:2005-11-26 19:14 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.066892 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言