<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    心內求法

    制心一境,住心觀性,澄心外照,攝心內證

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      37 隨筆 :: 0 文章 :: 120 評論 :: 0 Trackbacks

    《面向對象是什么》中,說得過于抽象??磥硪褑栴}說清楚,還得畫圖才行。

    前面說過,由于計算機體系結構的原因,所有的編程最終都會歸結為數據結構和算法,二者一陰一陽,一靜一動,陰中有陽,陽中有陰,恰如太極圖,映射了現實世界。

    如果用形式化的方式來表示,用圓圈表示數據,用方框表示過程,則計算的過程可以如下表示:

    對于過程,輸入數據,處理后輸出數據;

    對于數據,由過程產生,又輸入新的過程。

    歷史上曾經有過數據為主還是過程為主之爭,似乎到現在也沒有定論。在我看來,二者地位相等,不能厚此薄彼。

    隨著問題的復雜化,上述的計算過程會變得相當復雜。于是人們研究出了“結構化方法”。“結構化方法”來自屢試不爽的“模塊思想”:對于復雜問題,先劃分成一個個模塊,再逐步細化各個模塊,直到問題能夠解決。結構化的思想直接產生了面向過程的編程思想。如下圖:

    其中,屬于整個程序的數據稱為“全局變量”,可以被任何函數/過程使用;

    屬于函數/過程內部的數據稱為“局部變量”,只能在函數內使用。

    面向過程的思想在最初的混亂情形下增加了一層結構,使得全局變量極大地減少;似乎這種結構根據需要迭代下去,可以解決任何問題了;而且面向過程的研究還有一項重要的成果,就是把過程抽象為順序、循環和分支三種結構的有限次組合。

    如果人的欲望是有止境的,世界將是多么美好??!可惜不是!隨著問題的進一步復雜化,面向過程的方式又不能解決問題了。這是面向對象的方法出現了。面向對象的一個關鍵的概念是類。所有面向對象的方法都是在類上做文章。那么類到底是什么呢?其實從上圖的結構中可以看出,如果進一步把一些數據結構(不是數據)和一些函數組合起來,賦予其明確的意義,就構成了類。類體現了一種抽象,這種抽象有助于人思考問題,但是并不會有助于計算機思考問題,在計算機看來,程序還是由數據和過程組成的。所以,雖然我們按照類來思考,卻要按照對象來運行程序。對象是類的實例,是實際程序中數據和函數的組合。我想這也是稱之為“面向對象”而不是“面向過程”的原因吧。

    面向對象的方法是把人的抽象思維中的類映射到計算機思維中的對象的一種編程方法。這種方法是向計算機解釋現實世界的諸多方式中的一種。其進步意義在于:人們可以按照自己的方式來思考問題,而不必按照計算機的方式進行思考。

    既然是安裝人的思維方式來思考問題,就可以搞很多名堂,比如繼承,組合,多態,虛函數/接口等等。這都是人們為了助于提高程序的質量,特別是提高“可復用性”與“可擴充性”想出來的辦法。關于這些最基本的概念,且聽下回分解。

    附1:如果參考 邏輯學中概念內涵和外延的定義 ,類是概念,屬性和方法都是概念的內涵;對象是概念的外延。

    附2:最近好像“Function Programming(函數編程)”被提得比較多,我認為函數式編程是建立了這樣一種結構:

    HigherFunction可以把LowerFunction作為輸入和輸出(甚至可以把另一個HF作為輸入?)。

    這種方法對過程本身進行了“運算”,可以處理復雜的問題。究竟這種方式適合處理哪些問題,呵呵,我沒有研究過。



    本人的最新博客遷移到http://thinkinside.tk,使用GitHub Pages建立。
    我會陸續將所寫的文章遷移過去,并進行補充和修正,
    歡迎過來圍觀。
    posted on 2006-11-24 10:18 心內求法 閱讀(2243) 評論(6)  編輯  收藏 所屬分類: 1.制心一境

    評論

    # re: 動靜結合話編程 2006-11-24 10:37 BeanSoft[匿名]
    頂了! 大哥有做培訓講師的天賦!  回復  更多評論
      

    # re: 動靜結合話編程 2006-11-24 10:43 SeamanWang
    呵呵,沒有沒有,做了快7年才有這么點體會  回復  更多評論
      

    # re: 動靜結合話編程 2006-11-24 13:22 黃金時代已過
    推薦:
    1.老莊的"敲響OO時代的喪鐘-面向對象已死"系列
    http://zbw25.spaces.live.com/blog/cns!BD4EFBFAF436336C!220.entry?_c=BlogPart
    2."喪鐘為誰而鳴"系列
    http://m.tkk7.com/raimundox/archive/2005/12/20/24851.html
    3.javaeye中的相關討論
      回復  更多評論
      

    # re: 動靜結合話編程 2006-11-24 14:37 SeamanWang
    @黃金時代已過
    老莊的系列很長啊,粗粗過了47篇文章(LiveSpace的導航真的很不爽),內容太多,看來要慢慢研究了。

      回復  更多評論
      

    # re: 動靜結合話編程 2006-11-24 15:03 兵臨城下
    JAVA也用了四五年了,可要被問到何謂面向對象編程,我。。。。。  回復  更多評論
      

    # re: 動靜結合話編程 2006-11-24 15:07 心內求法
    @兵臨城下
    共同探討吧,這里只是拋磚引玉  回復  更多評論
      

    我常用的博客搜索
    主站蜘蛛池模板: 视频一区二区三区免费观看| 亚洲精品一二三区| 亚洲毛片在线免费观看| 夜夜嘿视频免费看| 亚洲国产成人99精品激情在线| 特级毛片全部免费播放| 国产无遮挡又黄又爽免费视频| 亚洲精品一卡2卡3卡四卡乱码| 日韩特黄特色大片免费视频| 亚洲1区2区3区精华液| 免费观看午夜在线欧差毛片| 免费国产a理论片| 国产92成人精品视频免费| 国产亚洲sss在线播放| 日韩高清免费在线观看| 色费女人18女人毛片免费视频| 亚洲Av无码国产情品久久| 亚洲影视自拍揄拍愉拍| 午夜免费福利网站| 男女交性无遮挡免费视频| 亚洲日韩精品A∨片无码| 国产综合激情在线亚洲第一页| 一个人在线观看视频免费| 色偷偷噜噜噜亚洲男人| 亚洲熟伦熟女新五十路熟妇| 99久久久国产精品免费牛牛四川| 亚洲女同成人AⅤ人片在线观看| 爽爽爽爽爽爽爽成人免费观看| 亚洲国产成人影院播放| 最近免费mv在线观看动漫| 中文字幕专区在线亚洲| 亚洲妇女无套内射精| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 国产中文在线亚洲精品官网| 午夜精品免费在线观看| 精品亚洲一区二区| 啦啦啦高清视频在线观看免费 | 亚洲欧美aⅴ在线资源| 亚洲午夜国产精品无码老牛影视 | 国产猛男猛女超爽免费视频| 亚洲人成伊人成综合网久久|