亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 我的面向對象程序觀 (轉).txt

?? 《Java技術大合集》,電子書籍都是從網絡上搜集整理成TXT文本文件。收集了:Java Socket編程、JSP語法、WebSphere快速入門等。
?? TXT
字號:
作者:大哥
email: programmers@sina.com
日期:8/7/2001 5:30:26 PM

/** 
* title:        我的面向對象程序觀 
* description:  描述我對面向對象的一些理解,思想上并不成熟,文章隨時都在更新,希望大家都來參與討論 
* copyright:    copyright (c) 2001 
* company:      matrixfox 
* @author 莫特探員 
* @version 本文章還在繼續更新中。 
*/ 

我的面向對象程序觀 

1)面向對象概念的一些誤解 

“面向對象”是一個如今被人叫爛的詞匯,就像去年人們都喜歡把自己的公司打上“.com”的標記一樣。其實有多少人能真正理解這個詞匯呢,很難說。我喜歡這樣來比喻人們對“對象”一詞的濫用。“對象”就好比人們經常說的“酷”和“爽”,很多人并不仔細考慮這兩個詞的差別,在很多情況下他們是通用的,“酷”和“爽”通常表達“心情不錯”的意思,你可以在你玩的高興的時候,大聲的叫嚷“太酷了,太爽了”,這個時候兩個詞匯是通用的。但是你可以說“這個人很酷啊”,但是你不能說“這個人很爽啊”。人們對“對象”這個詞匯的濫用就發生在這里,“面向對象”和“基于對象”就好比“酷”和“爽”,這是兩個不同的概念,但是人們通常將這兩個詞匯混為一談,一律用“面向對象”來表達。常見的錯誤可以在此列舉一些: 

1)有個人興高采烈的和你說“我不喜歡 flash 4 的腳本語言,flash 5 版本的 action script 采用了新的面向對象的“.”語法,寫起來很舒服。我現在一直用 flash 5 來做東西。”(同樣的話語也發生在 director 的 lingo 腳本語言中) 

2)visual basic 采用了面向對象的屬性和方法,比起過去的 basic 語言有了很大的提高。 

3)javascript 是面向對象的。 

等等。 

通常聽到類似的話,你都要認真審視說話之人,分析他說的話。可以肯定一點,他并非真正懂得什么是面向對象的思想。很多人沒有區分“面向對象”和“基于對象”兩個不同的概念。面向對象的三大特點(封裝,繼承,多態)卻一不可,通常“基于對象”使用對象,但是無法利用現有的對象模板產生新的對象類型,繼而產生新的對象,也就是說“基于對象”沒有繼承的特點,而“多態”是表示為父類類型的子類對象實例,沒有了繼承的概念也就無從談論“多態”。現在的很多流行技術都是基于對象的,它們使用一些封裝好的對象,調用對象的方法,設置對象的屬性。但是它們無法讓程序員派生新對象類型。他們只能使用現有對象的方法和屬性。所以當你判斷一個新的技術是否是面向對象的時候,通常可以使用后兩個特性來加以判斷。“面向對象”和“基于對象”都實現了“封裝”的概念,但是面向對象實現了“繼承和多態”,而“基于對象”沒有實現這些,的確很饒口。 


2)java 比 c++  在貫徹面向對象的思想方面更加徹底。 
我最近上的學習班的老師對我說:“c++ 是打著面向對象的幌子,干著過程編程的勾當”,這句話我非常的贊同,而且我一直以來也是這么認為的。但是仔細聽他講解后,我才發現,我是只是理解了這句話前兩層的意思。但是還有一層意思我沒有理解。你可能要問,“難道 c++ 不是面向對象的嗎?”。事實上 c++ 是真正的面向對象編程語言。但是它也是過程編程語言。為什么怎么說呢, c++ 的產生不但考慮了面向對象的特性,而且也更多的考慮了對 c 語言的向后兼容,使得 c++ 這種雜合語言表現出“過程”和“對象”編程的雙重性。你通常既可以繼續用 c++ 編譯器來編寫傳統的 c 程序,也可以使用 c ++ 的類庫或者編寫自己的類來作面向對象編程。這種“兩面性”使得人們可以繼續保留原有的 c 代碼,同時也阻礙了面向對象思想的推廣。 


舉個簡單的例子,94 年的時候,我開始學習 c++ ,當時是學習 turbo c++ 自己帶的一個叫作 turbo vision 的類庫來做項目。我的同學也用 turbo c++ ,但是他一點也沒有學習過 c++ 這個語言,他只是用 turbo c++ 編譯器來重新編譯他以前用 turbo c 寫的程序,然后他自豪的對我說:“瞧,我用 c++ 做的東西”,好像意思是說“我用 c++ 開發項目了”,在那個 c 比 pascal 高檔, pascal 比 foxbase 高檔的年代里, c++ 的標簽絕對是個很"酷"的標志。我其實很清楚他的行為。這就是“c++ 是打著面向對象的幌子,干著過程編程的勾當”的第一重意思,也就是說, c++ 編譯器對 c 程序的兼容性造成了最底層的“過程勾當”。在國內有很長一段時間,人們都是在用 c++ 編譯器做 c 編程。 我當時在想,比起我那個同學,我才是真正懂得面向對象的人。 我學習了 c++ 語言,我懂得封裝,繼承和多態,我學習了 turbo vision 的類庫,我派生了 turbo vision 的類庫并編寫了自己的類,所以我是懂得面向對象的。從某種意義上說,我這么想是對的。但是從面向對象程序員的分類來說,我又不完全懂得面向對象的思想。從事面向對象編程的人按照分工來說,可以分為“類庫的創建者”和“類庫的使用者”,通常創建類庫的人才是真正懂得面向對象思想的人,他們創建類庫供給那些“客戶程序員”來使用,他們從頭開始制作類庫,他們進行面向對象的分析,設計,實現的全過程。當學習完 c++ 后,我的第一個感覺是,從頭創建一個類庫真是很麻煩的事情,通常用 c 過程編程很容易實現的功能,你必須按照類的思想來從新建立對象,但是一旦類庫建立好后,使用類庫和派生類,以及維護代碼都是非常舒服的事情。使用類庫的人并不都是具備了面向對象思想的人,通常知道如何繼承和派生新對象就可以使用類庫了,然而我們的思維并沒有真正的轉過來,使用類庫只是在形式上是面向對象,而實質上只是庫函數的一種擴展。這就是我理解的“c++ 是打著面向對象的幌子,干著過程編程的勾當”的第二重意思,實際上用 c++ 編程的人,大部分不自己創建類,而是使用類庫,這樣就造成了他們把類庫作為一種高級的庫函數庫來理解,并沒有真正理解面向對象的思想。 


c++ 的面向對象的思想推廣很慢,直到 mfc ,owl ,vcl 這樣的類庫出來以后,人們才漸漸的接受了一些面向對象的思想。為什么這條面向對象的道路那么難走?我的答案是“因為 c++ 給了我們第二條道路去走過程編程”,當然原因是為了考慮兼容 c 語言,然而正是由于有了第二條老路才使得使得我們不會再去考慮新的面向對象編程思維方式。 


直到出現了 java ,才真正迎來了面向對象的曙光。java 真正是革命性的東西嗎?不是,所有現有的 java 的思想都是繼承自其他的語言和技術,沒有什么革命的地方,虛擬機的概念早在 20 年前的 ucsd pascal 中就采用了,只是當時的機器速度太慢,虛擬機仿真造成的性能降低對于當時的硬件來說是相當嚴重的。java 本身的很多東西也借鑒了 c++ 語言,連它的創始人也說,java 是 "c++--" 也就是說 java 去除了 c++ 的一些不太好的地方。所以說 java 本質上沒有什么革命的東西,所以那些對 java 的贊美之詞都是 sun 公司的宣傳伎倆。沒有一種語言會長久的存在下去,你很難說你的孩子在二十年后還會繼續使用 c++ 或 java,所以我們要拋開這些浮華詞匯的背后,找尋真正我們需要學習的東西。否則今天我們大家都是微軟的傀儡,明天 sun 公司起來了,我們就都是 sun 的傀儡。仔細研究美國電腦技術發展的歷史,美國人一向喜歡象第三世界兜售他們的過時技術,而他們始終可以自豪的說,我們將永遠領先你們第三世界國家二十年。我們始終在跟在美國人的后面學習他們的東西,這的確讓人擔憂。我說著說著又跑題了。java 雖然沒有什么真正的革命性的東西,但是 java 在真正推動面向對象編程思想方面是功不可末的。使用 java 編程,你無需考慮到向后兼容什么語言的問題,它是重新建立的語言,你在掌握這門語言之前,你必須將自己的編程思想由過程編程徹底轉向面向對象編程,因為 每個 java 程序,本身就是一個類,你編寫任何 java 程序,你都不自覺的在構造一個對象模板,沒有第二條道路,只能是面向對象編程。( 我非常喜歡 java 將所有類定義和類聲明放在一個文件中,而不是象 c++ 那樣,cpp 和 .h 文件是分開的。通常剛剛開始學習 java 的人不習慣,不過學習一段時間,你就會體會到它的好處了。), 使用 java 編寫程序(我更喜歡說---編寫類,而不是程序)的時候,你會必須從一個對象的角度來考慮問題,因為你的程序就是一個類,你必須考慮把哪些東西作為成員變量,哪些作為方法,要生成幾個類,哪些變量是成員變量,哪些是靜態的變量和方法,等等。通常做完一個項目,你就已經將面向對象的思想運用其中了。之所以說 java 在面向對象的貫徹方面要比 c++ 徹底,就是因為你只能使用面向對象的方式來編寫 java 程序,而 c++ 卻可以采用另外一條非面向對象的方式來編寫程序。java 并沒有什么真正革命性的東西,它最大的貢獻當然是推廣面向對象的思想了。 

java 總的來說是降低了繼續過程編程的可能性,但是并沒有完全消除它。面向對象是一種思想,是我們考慮事情的方法,通常表現為為我們是將問題的解決按照過程方式來解決呢,還是將問題抽象為一個對象來解決它。很多情況下,我們會不知不覺的按照過程方式來解決它,因為我們通常習慣于考慮解決問題的方法,而不是考慮將要解決問題抽象為對象去解決它。很多新的技術使我們更加趨向于過程而非對象的思想。最明顯的就是 rad (快速應用程序開發)可視技術的出現,人們可以通過設置屬性和編寫事件函數來快速開發應用程序,編寫事件函數就是典型的按照過程編程的思想(至少我是這么認為的),試問有多少人能區分vb 和 delphi ,c++ builder ,java 的事件函數編寫有什么本質的區別, 后三者都采用了 delegation (委托模型),在 java 中是通過 anonymous 類(無名類),或者 adapter 類來實現delegation,這是一種面向對象的構想,但是 vb 不是,所以這底層的區別都被上層的相似性所抹殺了,使用 jbuilder 編程的時候,我們如果沒有仔細研究 java 的 awt.event 編程方式的話,通常也是把它當作普普通通的“類 vb"的編寫方式來寫程序,而實際分析它在后臺所生成的代碼,你才能明白這些代碼是真正的面向對象的,但是如果你只是簡單的把它當作可視編程工具,你是永遠不會明白什么是”委托模型“,什么是面向對象編程的。這是我理解的 “c++ 是打著面向對象的幌子,干著過程編程的勾當”第三重意思。無論是 c++ 還是 java 都有可能走過程編程的老路, java 降低的過程編寫的可能性,但是如果你沒有具備面向對象的編程思想,你還是可能走面向過程的老路的。 

(未完待續) 



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一a一片一级一片| 91亚洲永久精品| 国产成a人无v码亚洲福利| 亚洲在线成人精品| 亚洲成人综合在线| 亚洲国产一区二区三区青草影视| 亚洲人快播电影网| 亚洲午夜久久久久久久久电影院| 亚洲免费电影在线| 午夜影视日本亚洲欧洲精品| 日韩黄色免费电影| 裸体歌舞表演一区二区| 韩日欧美一区二区三区| 国产一区二区三区免费播放| 大白屁股一区二区视频| 色哟哟一区二区在线观看| 欧美日韩在线综合| 2020国产精品自拍| 国产精品乱码一区二三区小蝌蚪| 亚洲欧美福利一区二区| 亚洲一级片在线观看| 美腿丝袜亚洲三区| 成人黄色电影在线| 欧美少妇性性性| 2023国产精华国产精品| 亚洲精品乱码久久久久| 成人av网址在线| 日本高清视频一区二区| 日韩精品中文字幕一区二区三区| 国产亚洲精久久久久久| 一区二区三区蜜桃| 国产高清成人在线| 在线视频国内自拍亚洲视频| 精品粉嫩超白一线天av| 亚洲欧美日韩综合aⅴ视频| 免费看日韩a级影片| av网站免费线看精品| 欧美日韩一本到| 中文字幕巨乱亚洲| 蜜臀av性久久久久蜜臀av麻豆| 99国产精品99久久久久久| 日韩视频免费直播| 亚洲激情图片小说视频| 国产乱人伦偷精品视频免下载| 在线观看日韩电影| 国产精品美女视频| 国产一区二区三区美女| 91麻豆精品国产91久久久| 日韩毛片精品高清免费| 国产高清视频一区| 久久亚洲捆绑美女| 日韩精品电影一区亚洲| 色94色欧美sute亚洲线路二| 久久这里只精品最新地址| 午夜精品在线视频一区| 一本久久综合亚洲鲁鲁五月天| 久久人人超碰精品| 久久精品999| 日韩午夜小视频| 日韩国产精品久久| 欧美日韩精品免费| 一区二区三区在线观看动漫| 风流少妇一区二区| 国产日产精品1区| 国产在线一区观看| 26uuu亚洲| 国产在线精品一区二区不卡了 | 一二三区精品视频| 成人黄色片在线观看| 欧美国产亚洲另类动漫| 国产成人自拍网| 国产精品护士白丝一区av| 不卡电影免费在线播放一区| 国产精品人妖ts系列视频| 国产精品主播直播| 国产精品婷婷午夜在线观看| 国内久久精品视频| 国产亚洲成年网址在线观看| 国产99久久精品| 一色桃子久久精品亚洲| 色香蕉成人二区免费| 一区二区欧美视频| 在线91免费看| 久久精品国产999大香线蕉| 精品国产污网站| 丰满少妇久久久久久久 | 高清beeg欧美| 中文字幕中文字幕一区| 色综合婷婷久久| 午夜电影久久久| 日韩欧美一区二区免费| 国产成人在线观看免费网站| 亚洲欧美中日韩| 欧美日韩激情一区| 狠狠狠色丁香婷婷综合久久五月| 久久久久久久久蜜桃| 91女神在线视频| 日韩不卡一二三区| 中文字幕欧美日韩一区| 在线亚洲人成电影网站色www| 日本怡春院一区二区| 国产精品三级在线观看| 欧美在线|欧美| 国产精品一区二区免费不卡| 亚洲精品视频观看| 久久亚洲一区二区三区四区| 一本到不卡免费一区二区| 蜜臀久久99精品久久久久久9| 国产精品久久久一本精品| 欧美图片一区二区三区| 国产成人午夜片在线观看高清观看| 中文字幕一区二区三区视频| 欧美一区二区视频免费观看| av影院午夜一区| 免费成人美女在线观看.| 国产精品白丝在线| 欧美精品一区二区三区在线播放| 色偷偷成人一区二区三区91| 国产原创一区二区三区| 午夜精品在线看| 伊人夜夜躁av伊人久久| 久久久久久电影| 欧美大度的电影原声| 色狠狠色狠狠综合| 成人免费黄色大片| 精品一区二区免费视频| 亚洲国产欧美日韩另类综合 | 亚洲成人av资源| 中文字幕一区二| 国产午夜精品福利| 欧美一级精品大片| 欧美伊人久久久久久午夜久久久久| 成人午夜私人影院| 国产suv一区二区三区88区| 日韩黄色免费电影| 天天综合色天天综合色h| 夜夜夜精品看看| 樱花草国产18久久久久| 国产精品第五页| 国产精品拍天天在线| 久久久高清一区二区三区| 欧美成va人片在线观看| 欧美一区国产二区| 日韩一区二区免费高清| 91麻豆精品国产自产在线观看一区| 色婷婷综合久久久久中文一区二区| 粉嫩嫩av羞羞动漫久久久| 国产91精品精华液一区二区三区 | 尤物在线观看一区| 亚洲欧美激情在线| 日韩美女视频一区| 亚洲天堂成人网| 一区二区三区中文字幕精品精品| 一区二区中文字幕在线| 中文字幕视频一区| 亚洲码国产岛国毛片在线| 亚洲情趣在线观看| 亚洲综合在线五月| 亚洲二区视频在线| 奇米影视在线99精品| 国内久久婷婷综合| 成人精品一区二区三区四区 | 99re成人在线| 在线视频欧美精品| 欧美精品一二三区| 精品久久五月天| 国产精品丝袜久久久久久app| 日韩美女久久久| 日韩有码一区二区三区| 国产一区欧美日韩| 99久久免费精品高清特色大片| 色成人在线视频| 欧美一级黄色录像| 欧美激情中文不卡| 亚洲成av人在线观看| 精久久久久久久久久久| 北条麻妃国产九九精品视频| 91精品91久久久中77777| 欧美一区二区成人| 欧美激情在线看| 亚洲第一激情av| 国产一区二区三区电影在线观看| 99久久免费国产| 日韩一区二区高清| 亚洲欧洲av在线| 日本va欧美va精品发布| 99久久久久免费精品国产| 51午夜精品国产| 中文字幕五月欧美| 美国毛片一区二区三区| 色偷偷一区二区三区| 精品国产一区二区三区不卡| 亚洲欧美日韩电影| 国产一区二区电影| 欧美日韩大陆一区二区| 中文字幕成人在线观看| 免费观看日韩av| 日本韩国视频一区二区| 欧美国产成人精品| 日韩电影在线观看电影|