作者TonyQ (骨頭)
站內java
標題Re: [問題] class變數存取問題
時間Wed Mar 15 14:52:21 2006
<Local> XD
※ 引述《godfat (godfat 真常)》之銘言:
: ※ 引述《TonyQ (骨頭)》之銘言:
: 嗯,我想正名一下
: 是 operator overloading(簡稱 OO?), 不是 overriding
: override 通常是牽涉到 dynamic binding, 也就是執行時決議 function
: 但是對於我們想「改寫」運算子方法時,通常是不會用多形的手法
: (至少我沒看過,感覺也很古怪…)
這故事告訴我們英文要學好...還有不要跟著別人回文講...(瞪某P)
: 而是編譯期我們就已經確定他要去使用哪一個 function
: 這種時候不需要用到 override, 這樣會有額外的負擔
: 雖然我不知道 compiler 是否會判斷說因為你用不到 dynamic binding,
: 所以在編譯期就把 function 寫死。
: 如果是這樣,任意 override 大概關係就不會太大。
: : (你也得先知道要比對T的甚麼條件才能 overriding operator吧??:P)
: 在 C++ 中,template 的泛型手法並不需要知道 T 是什麼
: 任何有實作所使用到的介面的型別,我們都可以說他符合 T
: 侯捷這篇文章討論了一點 C++ 與 Java 的泛型
: http://www.jjhou.com/javatwo-2004-gp-in-jdk15.pdf
本人文中所述的T是它問題中function中所寫的T,並非C++的泛型,
相信現在Java版討論的是Java的東西也不是討論C++的東西。:P
引用原文的程式碼如下
class XXXX <T>{
public T bigger(T a,T b){
if(a>b) return a;
else return b;
}
}
<底下是一些個人感覺...>
將兩個程式碼的語言或用法混在一起講,很容易造成閱讀者
以及回答者的困擾,畢竟是在Java版討論Java的事情卻被別的語言打擾。XD
<結束>
(這pdf真是難連 XD)
不過透過這篇pdf倒是驗證了一些個人對泛型的想法,
站在一個學習者的角度來看,也算是得到了一個肯定的答案。:P
站在Java撰寫者的立場上,對物件比較勢必要有個rule,
這是我當初直覺的想法,因為Object本身就是個T。XD
所以看到這裡的T,倒是也很直覺的就帶入Java的想法,
不過不知道T是甚麼的時候的比對方式,還是會有它的rule吧。:)
就像是Object的equals()或甚麼其他的。
相信雖然語言和實作的方式不一樣,但是核心的概念是不會變的。
--
只是閒聊 哈哈哈
題外話,
突然想到侯捷在我們學校資工系有開高等物件導向的課程,
內容就是在講template 泛型技術。
真是讓人汗顏,看來是時候認真去旁聽吸收點知識了:P
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.240.58
※ 編輯: TonyQ 來自: 140.138.240.58 (03/15 15:06)