面向對象編程,我的思想(1)
發表時間:2024-01-11 來源:明輝站整理相關軟件相關文章人氣:
[摘要]前言:整理這份資料的目的是為了幫助朋友們能夠更直觀的理解面向對象的編程。讓后來者能夠少走一些彎路。但其中不免有許多漏洞及錯誤,也還請前輩提出寶貴的更改意見,畢竟交流會讓我們不斷的進步。技術是日新月異的,他不會等待你的成長。技術要拿出來于別人交流,自己學是自己主觀意識上的理解,有對有錯!交流會讓進步...
前言:整理這份資料的目的是為了幫助朋友們能夠更直觀的理解面向對象的編程。讓后來者能夠少走一些彎路。但其中不免有許多漏洞及錯誤,也還請前輩提出寶貴的更改意見,畢竟交流會讓我們不斷的進步。技術是日新月異的,他不會等待你的成長。技術要拿出來于別人交流,自己學是自己主觀意識上的理解,有對有錯!交流會讓進步變得更快。我認為如果計算機的體系結構不發生革命性的變化,我們現在所應用的程序語言也就百變不離奇蹤了!學編程學的是什么?思想!精通一門編程語言(最好是面向對象的語言)后再去搞其他的編程語言,你會發現過程是如此的行云流水!為什么?你已經把編程的思想掌握了,再去學其他的,無非是學習一種新的語法格式了。我在這里并不是和你討論怎么去用C++或JAVA,也不是和你討論怎么去學他們,我要和你討論的是怎么去理解面向對象。其中主要會涉及到“類、對象、繼承、屬性、方法、靜態、重載、隱藏、重構、聲明、定義、初始化、賦值等”其中有許多相關技術我只會一代而過,讓你有一種到此一游的意味我就達到目的了,而更詳細的技術內幕,就請參考其他相關書籍而深入研究吧!因為我只是在和你探討如何去更好的理解面向對象!如何去提高效率?重復使用資源,把別人的東西拿來就用。這是很不錯的主意!而對于你來說,最大的資源就是信心以及積極性!好,打起精神來,讓我們一同到面向對象的編程中去尋幽訪勝吧!注:文章中所有程序實例我都使用JAVA寫的,當然在C++中也就大同小異了了,不同的地方我會指出!注:文章中的正文文字用黑色,說明文字用藍色,強調文字用橙色,批改文字用紅色!正文:1.基本概念:1.1 類與對象的初探要我說,無論是面向過程的語言也好,面向對象的語言也罷,我首先要給他講的都是類和對象!--------“這個世界是由什么組成的?”這個問題如果讓不同的人來回答會得到不同的答案。如果是一個化學家,他也許會告訴你“還用問嘛?這個世界是由分子、原子、離子等等的化學物質組成的”。如果是一個畫家呢?他也許會告訴你,“這個世界是由不同的顏色所組成的”。……呵呵,眾說紛紜吧!但如果讓一個分類學家來考慮問題就有趣的多了,他會告訴你“這個世界是由不同類型的物與事所構成的”好!作為面向對象的程序員來說,我們要站在分類學家的角度去考慮問題!是的,這個世界是由動物、植物等組成的。動物又分為單細胞動物、多細胞動物、哺乳動物等等,哺乳動物又分為人、大象、老虎……就這樣的分下去了!現在,站在抽象的角度,我們給“類”下個定義吧!我的意思是,站在抽象的角度,你回答我“什么是人類?”首先讓我們來看看人類所具有的一些特征,這個特征包括屬性(一些參數,數值)以及方法(一些行為,他能干什么!)。每個人都有身高、體重、年齡、血型等等一些屬性。人會勞動、人都會直立行走、人都會用自己的頭腦去創造工具等等這些方法!人之所以能區別于其它類型的動物,是因為每個人都具有人這個群體的屬性與方法。“人類”只是一個抽象的概念,它僅僅是一個概念,它是不存在的實體!但是所有具備“人類”這個群體的屬性與方法的對象都叫人!這個對象“人”是實際存在的實體!每個人都是人這個群體的一個對象。老虎為什么不是人?因為它不具備人這個群體的屬性與方法,老虎不會直立行走,不會使用工具等等!所以說老虎不是人!由此可見-------類描述了一組有相同特性(屬性)和相同行為(方法)的對象。在程序中,類實際上就是數據類型!例如:整數,小數等等。整數也有一組特性和行為。面向過程的語言與面相對象的語言的區別就在于,面向過程的語言不允許程序員自己定義數據類型,而只能使用程序中內置的數據類型!而為了模擬真實世界,為了更好的解決問題,往往我們需要創建解決問題所必需的數據類型!面向對象編程為我們提供了解決方案。