小說翻譯,日語相關(guān)轉(zhuǎn)移至http://blog.hjenglish.com/liwei
8.3再追加當自己陷入僵局時,最好和同事討論下,看看他們?nèi)绾巫龅膥~第一次作業(yè)還沒做時,我聽劉(武)講過他的思路,雖然不是很難的題目,但聽他說過后,自己的思路更加清晰了,然后沒花多少時間就做出來了。今天無法解決的時候,去看了下他的情況,他開口就說正方形只繼承了**,剛好就是我的難點。于是,按他的方式解決了。正方形只能繼承一個,我繼承的是矩形,那如何算到菱形里呢?在類里不可能,那就在實例化時直接修改菱形的幾個靜態(tài)變量,加到菱形里。看到他的方式,眼睛就一亮,我怎么就沒有去想實例化時呢?修改時,要讀取邊長,于是試了下屬性,中間出了個問題,原來屬性名不能和變量同名。因為那個變量私有,我把四邊形的那個變量改為protected了,不知有沒有更好的解決方法~~
?
總結(jié)昨天的想法,主要有以下問題1.正方形只能繼承一個2.計算四邊形面積調(diào)用三角形3.計算非四邊形,包括圓和三角形今天實際編碼后,第一個問題仍有難度,尚需考慮。第二個問題很簡單,直接將三角形的面積計算方法COPY過來就可以了。第三個問題寫一個新類NotQuadrangle,包含幾個靜態(tài)變量,讓圓和三角形繼承它就可以了,要顯示數(shù)據(jù)時,直接調(diào)用NotQuadrangle。剛才顯示了下結(jié)果,正方形沒算到菱形里去~~哎,現(xiàn)在還沒思路~~郁悶~~
對于求所有實例的平均邊長,最大最小邊長,初一看,覺得很簡單,把所有邊拿來一平均,不就完成了嗎~再一想,沒那么簡單,看看我的程序,實例的作用域都在不同的else里,如何保存這些實例呢。再說類的變量也不能直接用,還是得從類內(nèi)部著手。說到類的內(nèi)部,就想到在構(gòu)造函數(shù)里做文章。只要實例化一個類,就把當前實例的平均邊長,最大最小邊求出。嗯,求所有實例的話,那就用3個靜態(tài)變量保存以前的值,實例化當前的一個對象時,就修改那3個值。這個思路可以滿足初步的要求。再仔細想想細節(jié)。當子類實例化時,會調(diào)用父類,這樣只要是四邊形就都會算進來。滿足“各種形狀類型的包含關(guān)系”,但也有問題,正方形既是菱形又是矩形,而我實現(xiàn)它時,繼承的是矩形,計算所有菱形的平均邊長時,會忽略掉正方形。還有一個我個人設(shè)計上的問題,計算四邊形面積時,我是將其分成兩個三角形來計算的,直接調(diào)用的三角形求面積方法,這就會增加到三角形的平均邊長里去。要說到問題,還不止這些。非四邊形包括圓和三角形,要合在一起就不能用前面的方法。圓是一條邊吧?呵呵,應(yīng)該是的。看來問題多多啊,嗯,慢慢來解決。有一句話沒看懂啊:“要求利用類的重寫”。<重寫?不是重構(gòu),重載。專有名詞?如果只是重新寫類,爲何要特意寫出來?啊,算了,最后再考慮吧~啊,服了,漢字變成點了~~(如果不能輸入中文,請切換到HTML視圖,再切換到正常視圖) 這個難道是專門針對日文系統(tǒng)的人寫的?害我多打了幾個繁體字~
posted on 2006-08-02 18:21 李威 閱讀(176) 評論(0) 編輯 收藏
Powered by: BlogJava Copyright © 李威