舉個例子,汽車的制造我們可以從兩個方面來考慮:1.我們可以認為汽車的制造是壹系列過程的產物,而每個過程有包含子過程,給定適當的材料,經過壹系列步驟的加工,最終生產出壹輛汽車。2.我們也可以認為汽車的制造是由不同的工廠相互協作完成的,每個工廠有自己的工人和機器,每個工人、每臺機器、每家工廠各司其職,最終完成壹輛輛汽車的制造。通過觀察,我們會發現有壹些工人他們有很大的相似性(如他們都穿同樣的工作服,生產同樣的零件),這時我們會建立壹個類來描述他們之間的相似性(抽象)以及定義壹個接口規定他們的職責(封裝);同樣經過觀察我們也發現即使是不同的類(如生產不同零件的工人),他們之間也具有某些相似性(比如都在同壹家工廠生產零件),但是在相似的地方又有區別(不同種類的工人生產不同的零件),這時我們使用基類(繼承)來描述相似性,使用虛函數(多態)來描述相似中的差異。通過上面的分析,我們建立了組成和類層次結構,用面向對象的方法描述了汽車的制造。
問題二:面向對象到底什麽意思? 世界上有loli控,禦姐控,女王控,所以有句話就叫萬物皆可控
面向對象也是壹樣,萬物皆對象
對象這個詞妳可以理解為壹個總稱,比如男人女人都叫人,蠟燭皮鞭高跟鞋都是道具,所以面向對象原本的意思是“都叫對象”,翻譯過來不是原汁原味了而已因此,房子是對象、飛機是對象、貓是對象、樹是對象、女朋友也是對象,並且對象具有唯壹性:妳家的房子是妳家的,不是我家的,妳在國外看到的美女不是我在國內看到的美女,妳的身份證號和我的身份證號不壹樣
那麽壹個房子裏都有啥呢,有電腦,還有動作片光盤、戰爭片錄像帶、人體藝術雜誌……現在這些“包含”在房子裏的東西就不是東西了,而是叫做“屬性”……
對象、屬性都有了,剩下就是方法了方法也很好理解啊,意思就是妳想要得到某種結果,就需要用特定的方法比如妳女朋友生氣了要哄吧,不高興了要逗她開心吧,“哄”和“逗”這些就是讓女朋友死心塌地的方法……諸如此類,發現壹個美眉要用“追”這個方法,和女朋友逛街上碰到美女要用“窺”這個方法,戀愛都要用“談”這個方法……
――對象就是壹個概念,把所有的事物都稱作為“對象”(沒有不是對象的東西)――屬性就是該事物的組成部分,所有可以被包含的部分都稱為“屬性”(沒有不含屬性的對象)――方法就是達成目標的途徑,所有可行性的行為都成為方法(沒有不存在方法的對象和屬性,但是可以選擇使用哪些方法)
所以在設計時要建立正確的對象:咱要找的是MM,不是恐龍,妳建立芙蓉姐姐這個“對象”就很明顯不是正常人了決定正確的對象了之後,要搞清她的脾 *** 好――該對象的屬性是:身高165cm,體重45kg,三圍84cm、66cm、86cm,單身然後妳要用正確的方法來追求,聊天(參數是時尚、美容等等……),看電影(愛情片、恐怖片、韓國泡菜),送花(3朵、11朵、999朵)
現在該明確對象、屬性、方法的定義了吧
然後就是封裝、繼承、多態
封裝就是要保護好女朋友,不能被別人勾引過去,因為要讓她“只能”聽信妳得花言巧語,沒追到手前不要介紹給別人的帥哥,所以自己的老婆是自己的,不能給別人,這就是“私有性封裝”再比如,妳的賬戶――這個對象,有錢――這個屬性妳中彩票1個億,親朋好友都找妳們借錢,妳們覺得親戚裏道的,借就借唄,這錢就是“局部性封裝”要是中彩票100個億,滿大街撒錢,這就是“全局性封裝”――封裝就是決定該對象的使用範圍,當然,妳要讓我幫妳花我也不介意效勞的
繼承,妳的家產如果不捐獻的話,那麽妳的兒子是自然繼承人,這叫單重繼承,妳7、8個子女分家產,這叫多重繼承……並且,如果不把意外傷害受益人寫成別人的,別人是不能繼承的……――繼承就是決定該對象的屬性、方法可以被哪個對象使用
多態,比如說妳擅長做中餐,妳兒子擅長做西餐,妳女兒擅長做點心,現在妳有壹個鐵哥們上妳家串門吃飯,他使用吃飯這個方法――妳家.吃飯(中餐),就能嘗到豬肉燉粉條,使用――妳家.吃飯(西餐)就能吃到牛排,使――用妳家.吃飯(點心)就能嘗到面點,這就是“吃飯”這個方法的多態性,因為不能限制吃飯只能吃壹種東西啊,如同開門可以用鑰匙,也可以劃卡,還可以遙控等等――多態就是同壹種方法的不同運作方式
哈哈,過年心情好,不知不覺寫這麽多字~~嗯,嗯,很有成就感~~
問題三:面向對象思想是什麽 面向對象思想----不看後悔!
前言:
整理這份資料的目的是為了幫助朋友們能夠更直觀的理解面向對象的編程。讓後來者能夠少走壹些彎路。但其中不免有許多漏洞及錯誤,也還請前輩提出寶貴的更改意見,畢竟交流會讓我們不斷的進步。
技術是日新月異的,他不會等待妳的成長。技術要拿出來於別人交流,自己學是自己主觀意識上的理解,有對有錯!交流會讓進步變得更快。我認為如果計算機 的體系結構不發生革命性的變化,我們現在所應用的程序語言也就百變不離奇蹤了!學編程學的是什麽?思想!精通壹門編程語言(最好是面向對象的語言)後再去 搞其他的編程語言,妳會發現過程是如此的行雲流水!為什麽?妳已經把編程的思想掌握了,再去學其他的,無非是學習壹種新的語法格式了。
我在這裏並不是和妳討論怎麽去用C++或JAVA,也不是和妳討論怎麽去學他們,我要和妳討論的是怎麽去理解面向對象。其中主要會涉及到“類、對象、 繼承、屬性、方法、靜態、重載、隱藏、重構、聲明、定義、初始化、賦值等”其中有許多相關技術我只會壹代而過,讓妳有壹種到此壹遊的意味我就達到目的了, 而更詳細的技術內幕,就請參考其他相關書籍而深入研究吧!因為我只是在和妳探討如何去更好的理解面向對象!
如何去提高效率?重復使用資源,把別人的東西拿來就用。這是很不錯的主意!而對於妳來說,最大的資源就是信心以及積極性!好,打起精神來,讓我們壹同到面向對象的編程中去尋幽訪勝吧!
註:文章中所有程序實例我都使用JAVA寫的,當然在C++中也就大同小異了了,不同的地方我會指出!
註:文章中的正文文字用黑色,說明文字用藍色,強調文字用橙色,批改文字用紅色!
正文:
1.基本概念:
1.1 類與對象的初探
要我說,無論是面向過程的語言也好,面向對象的語言也罷,我首先要給他講的都是類和對象!--------“這個世界是由什麽組成的?”這個問題如果 讓不同的人來回答會得到不同的答案。如果是壹個化學家,他也許會告訴妳“還用問嘛?這個世界是由分子、原子、離子等等的化學物質組成的”。如果是壹個畫家 呢?他也許會告訴妳,“這個世界是由不同的顏色所組成的”。……呵呵,眾說紛紜吧!但如果讓壹個分類學家來考慮問題就有趣的多了,他會告訴妳“這個世界是 由不同類型的物與事所構成的”好!作為面向對象的程序員來說,我們要站在分類學家的角度去考慮問題!是的,這個世界是由動物、植物等組成的。動物又分為單 細胞動物、多細胞動物、哺乳動物等等,哺乳動物又分為人、大象、老虎……就這樣的分下去了!
現在,站在抽象的角度,我們給“類”下個定義吧!我的意思是,站在抽象的角度,妳回答我“什麽是人類?”首先讓我們來看看人類所具有的壹些特征,這個 特征包括屬性(壹些參數,數值)以及方法(壹些行為,他能幹什麽!)。每個人都有身高、體重、年齡、血型等等壹些屬性。人會勞動、人都會直立行走、人都會 用自己的頭腦去創造工具等等這些方法!人之所以能區別於其它類型的動物,是因為每個人都具有人這個群體的屬性與方法。“人類”只是壹個抽象的概念,它僅僅 是壹個概念,它是不存在的實體!但是所有具備“人類”這個群體的屬性與方法的對象都叫人!這個對象“人”是實際存在的實體!每個人都是人這個群體的壹個對 象。老虎為什麽不是人?因為它不具備人這個群體的屬性與方法,老虎不會直立行走,不會使用工具等等!所以說老虎不是人!
由此可見-------類描述了壹組有相同特性(屬性)和相同行為(方法)的對象。在程序中,類實際上就是數據類型!例如:整數,小數等等。整數也有 壹組特性和行為。面向過程的語......>>
問題四:面向對象是什麽意思 ->是指針,呵呵,我也是初學者,呵呵,就太白話和妳說吧,我是這麽理解的壹個對象就好象壹個房子,裏面有桌子,電視這個就好象對象裏面的方法,那麽妳找到了這個房子就好象妳初始化了妳的對象比如妳的對象是class bb{}那麽初始化妳的對象就好象$aa=new bb,妳找到這個房子後妳想把裏面的桌子拿來用壹下,妳的桌子是這個對象裏面的方法比如是function cc{}本來桌子是這個房子裏的東西,妳拿來用就是$aa->cc(),$aa是妳剛才初始化的那個對象,就好象妳找到了這個房子,而cc()這個是這個房子裏的桌子,同理如果妳想拿椅子,椅子是function oo{}那麽就是$aa->oo(),不知道對妳有幫助沒.呵呵
問題五:面向對象 是什麽意思我看百科的看不懂 (用妳理解的話解釋) 從前有兩個人,壹個叫小明,壹個叫大明,他們的生活方式截然不同。舉個喝咖啡的例子。
小明是個傳統的人,他喝咖啡的方式是先從超市買來咖啡豆,取出手動攪拌機,倒入攪拌機中,手動把咖啡豆攪拌成粉末,之後倒入咖啡杯中,然後去燒了壹壺開水,倒入開水泡咖啡。歷時半小時,小明喝到了香濃的手工咖啡。
大明是個懶人,喜歡用工具。他買來咖啡豆,丟進新買的咖啡機裏,倒入水,打開開關,靜靜的等待咖啡的制作完成,整個過程大明只是買咖啡豆和倒水,其他的研磨過程大明壹律不管。在打完壹局擼啊擼以後,大明也喝上了咖啡。
在這個過程中,小明就是面向過程,大明是面向對象。小明喝咖啡要從頭到尾壹步步來制作,而大明把中間壹些步奏交給了咖啡機(研磨、燒水、泡制)。對於大明來說,咖啡機就是壹個對象,它負責咖啡的研磨、燒水和泡制。大明不需要管磨豆要磨到什麽程度才最好喝,也不需要考慮水燒到多少度泡出來的咖啡才最香,大明只需要知道壹件事:我要喝咖啡。咖啡機內部的工作方式完全不需要知道,這就體現了面向對象封裝的思想,只要結果就行,過程不需要了解。
也就是說,要做壹件事,調用壹個對象去做,這個對象具有某種處理能力,可以幫妳屏蔽壹些妳不需要的細節,它保證妳能拿到自己想要的結果就行。
這樣子做起來很方便。
問題六:面試---妳對面向對象怎麽理解? 汗!
記得我以前面試的時候,基本上這個問題被問爛了!
首先妳要是萬事萬物都是壹個對象,有自己的屬性,自己的行為。
如壹個人 有自己的名字,性別,年齡。行為就是吃飯啊走路啊。什麽的。
然後肯定要說面向對象的思想啦 把封裝 多態 繼承 稍微談壹下就可以過啦!
問題七:編程中說的面向對象是什麽意思? 面向對象是壹種新興的程序設計方法,或者說它是壹種新的程序設計範型,其基本思想是使用對象,類,繼承,封裝,消息等基本概念來進行程序設計。
它是從現實世界中客觀存在的事物(即對象)出發來構造軟件系統,並在系統構造中盡可能運用人類的自然思維方式,強調直接以問題域(現實世界)中的事物為中心來思考問題,認識問題,並根據這些事物的本質特點,把它們抽象地表示為系統中的對象,作為系統的基本構成單位(而不是用壹些與現實世界中的事物相關比較遠,並且沒有對應關系的其它概念來構造系統)。這可以使系統直接地映射問題域,保持問題域中事物及其相互關系的本來面貌。
從程序設計的角度來看,面向對象的程序設計語言必須有描述對象及其相互之間關系的語言成分。這些程序設計語言可以歸納為以下幾類:系統中壹切皆為對象;對象是屬性及其操作的封裝體;對象可按其性質劃分為類,對象成為類的實例;實例關系和繼承關系是對象之間的靜態關系;消息傳遞是對象之間動態聯系的唯壹形式,也是計算的唯壹形式;方法是消息的序列。
問題八:很簡單,面試的時候,考官問妳,什麽是面向對象。。我們怎麽回答呢? 面對對象就是:
把數據及對數據的操作方法放在壹起,作為壹個相互依存的整體――對象。對同類對象抽象出其***性,形成類。類中的大多數數據,只能用本類的方法進行處理。類通過壹個簡單的外部接口與外界 *** ,對象與對象之間通過消息進行通信。程序流程由用戶在使用中決定。
問題九:在JAVA中,面向對象和類是怎麽理解呢?請舉個通俗的例子說明壹下: 這是我的理解 僅供參考:
類好比就是人裏面有男人、女人;動物裏面有牛、羊、狗、貓等等;而這裏所說的人就是壹類,動物是另外壹類 ;總不能把人和動物算成壹類吧(當然不算高級動物);而對象就是我說的男人、女人、還有動物裏的牛、羊、狗、貓等等;它們每壹個都算壹個對象。是實實在在存在的;面向對象就是以這些對象為中心來寫的程序,不管妳寫的是什麽功能,都必須有對象去對這個功能進行操作才行;好比妳制造出了壹輛車 ,必須要有人去開對吧,如果這個車沒人開 那它就是個廢品。它永遠都不會動。不知道我這樣說妳是否理解。