李威 さぽている

          小說翻譯,日語相關轉移至http://blog.hjenglish.com/liwei

          對.Net第二次作業補充題目的思索[8.3追加]

          8.3再追加
          當自己陷入僵局時,最好和同事討論下,看看他們如何做的~~
          第一次作業還沒做時,我聽劉(武)講過他的思路,雖然不是很難的題目,但聽他說過后,自己的思路更加清晰了,然后沒花多少時間就做出來了。
          今天無法解決的時候,去看了下他的情況,他開口就說正方形只繼承了**,剛好就是我的難點。于是,按他的方式解決了。正方形只能繼承一個,我繼承的是矩形,那如何算到菱形里呢?在類里不可能,那就在實例化時直接修改菱形的幾個靜態變量,加到菱形里。看到他的方式,眼睛就一亮,我怎么就沒有去想實例化時呢?
          修改時,要讀取邊長,于是試了下屬性,中間出了個問題,原來屬性名不能和變量同名。因為那個變量私有,我把四邊形的那個變量改為protected了,不知有沒有更好的解決方法~~

          ?

          public ? class ?Quadrangle?:?IGraphics
          ????
          {?
          ????????
          protected ? double ?a;
          ????????……
          ?????}

          class ?Rectangle?:?Parallelogram
          ????
          {……}
          class ?Parallelogram?:?Quadrangle
          ????
          {……}
          class ?Square?:?Rectangle
          ????
          {????????
          ????????
          public ? double ?aBorder
          ????????
          {
          ????????????
          get
          ????????????
          {
          ????????????????
          return ?a;
          ????????????}

          ????????}


          ?????}


          ?



          總結昨天的想法,主要有以下問題
          1.正方形只能繼承一個
          2.計算四邊形面積調用三角形
          3.計算非四邊形,包括圓和三角形

          今天實際編碼后,第一個問題仍有難度,尚需考慮。
          第二個問題很簡單,直接將三角形的面積計算方法COPY過來就可以了。
          第三個問題寫一個新類NotQuadrangle,包含幾個靜態變量,讓圓和三角形繼承它就可以了,要顯示數據時,直接調用NotQuadrangle。

          剛才顯示了下結果,正方形沒算到菱形里去~~哎,現在還沒思路~~郁悶~~



          對于求所有實例的平均邊長,最大最小邊長,初一看,覺得很簡單,把所有邊拿來一平均,不就完成了嗎~
          再一想,沒那么簡單,看看我的程序,實例的作用域都在不同的else里,如何保存這些實例呢。再說類的變量也不能直接用,還是得從類內部著手。

          說到類的內部,就想到在構造函數里做文章。只要實例化一個類,就把當前實例的平均邊長,最大最小邊求出。嗯,求所有實例的話,那就用3個靜態變量保存以前的值,實例化當前的一個對象時,就修改那3個值。這個思路可以滿足初步的要求。

          再仔細想想細節。當子類實例化時,會調用父類,這樣只要是四邊形就都會算進來。滿足“各種形狀類型的包含關系”,但也有問題,正方形既是菱形又是矩形,而我實現它時,繼承的是矩形,計算所有菱形的平均邊長時,會忽略掉正方形。還有一個我個人設計上的問題,計算四邊形面積時,我是將其分成兩個三角形來計算的,直接調用的三角形求面積方法,這就會增加到三角形的平均邊長里去。

          要說到問題,還不止這些。非四邊形包括圓和三角形,要合在一起就不能用前面的方法。圓是一條邊吧?呵呵,應該是的。

          看來問題多多啊,嗯,慢慢來解決。有一句話沒看懂啊:“要求利用類的重寫”。<重寫?不是重構,重載。專有名詞?如果只是重新寫類,爲何要特意寫出來?啊,算了,最后再考慮吧~

          啊,服了,漢字變成點了~~
          (如果不能輸入中文,請切換到HTML視圖,再切換到正常視圖) 這個難道是專門針對日文系統的人寫的?害我多打了幾個繁體字~

          posted on 2006-08-02 18:21 李威 閱讀(177) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 偏关县| 綦江县| 兴和县| 康平县| 陈巴尔虎旗| 虹口区| 东安县| 恩平市| 江口县| 南充市| 阳朔县| 湘潭市| 定远县| 西乌珠穆沁旗| 浦县| 康保县| 墨脱县| 姜堰市| 延川县| 韩城市| 焦作市| 策勒县| 丰城市| 高台县| 太谷县| 霞浦县| 金沙县| 秦安县| 阿拉善左旗| 夏邑县| 仁怀市| 白朗县| 苗栗市| 台中市| 体育| 洛浦县| 仁怀市| 兖州市| 沁阳市| 乐陵市| 呼和浩特市|