好程式設計師分享物件導向概念的理解以及ES3和ES6中類的寫法
好程式設計師 分享物件導向概念的理解以及 ES3 和 ES6 中類的寫法 , 本文將從以下四個方面進行講解:
1 、 物件導向的概念
2 、 類和物件的概念
3 、 ES6 中類的寫法
4 、 ES3 中“類”的寫法
以下為詳細內容:
1 、 物件導向的概念
物件導向, IT 行業的地球人都知道很重要,很難理解,對於很多做過好幾年開發的人不見得對物件導向完全理解。物件導向程式設計是一種程式設計思想,是基本沿用人類習慣性思維的一種程式設計思想。 ps :我給學生講課時,經常問學生“程式設計為了什麼”,學生說掙錢,為了更好的生活,我讓學生提高一下高度,最後就提升到了“為人民 ( 類 ) 服務”了 ( 哈哈 ) ,此話不假。因為,程式設計就是要做資訊化的事情,而資訊化就是資訊化整個社會,即把人類社會的各行各業都進行資訊化,也就是為人類服務了。那麼,既然要為人類服務,解決人類社會的問題,那麼,是不是該用人類的思維才對呀。
我來分享一下我對物件導向的理解。
比如,我們要創辦一個公司 ( 資金已經到位 ) 。會按照以下步驟:
首先,我們需要考慮的是,創辦公司需要哪些角色,如:總經理,市場人員,技術,售後,財務,行政,進一步細化,總經理的要求有:性別,年齡,經驗,總經理要負責公司的正常經營和利潤的保證等等。市場人員的要求:性別,年齡,經驗,市場人員要負責公司市場的擴充和業務的保證等等。技術人員的要求:性別,年齡,經驗,能夠勝任技術方面的相關工作,如:要會用原生的 JS 寫外掛,技術人員負責完成客戶的需求等等,這些都是對公司角色的描述,在物件導向程式設計思想中,就是類,當然 Javascript 是從 ES6 開始才提出了類的概念,以前的版本沒有類的概念,只有物件之說。
其次,我們會想到,工作該如何開展。如:先得有總經理,然後讓總經理招聘市場人員瞭解市場,開拓市場,再招聘技術人員開發產品,產品快要成型時,招聘售後人員瞭解產品,準備售後的服務工作,財務人員也得跟上,這裡面,也有團隊配合的體現,比如,市場人員沒法給客戶講清楚具體的實現時,就需要技術人員配合市場人員給客戶講解等等。當然,每個公司的具體流程不太一樣,但是,都是同樣的道理。這些就是程式中的業務邏輯部分。
比如,我們要創辦一個培訓學校,會按照以下步驟:
首先,我們需要考慮的是,創辦學校需要哪些角色,如:校長,市場人員,諮詢人員,講師,班主任,就業老師,財務,行政等等。校長的要求:需要具備什麼,能幹什麼 ; 市場人員的要求:有什麼,能幹什麼 ; 講師的要求:有什麼,能幹什麼 ; 等等,這些都是對公司角色的描述,在物件導向程式設計思想中,就是類,而“有什麼”就是類的屬性 ( 變數 ) ,“能幹什麼”就是類的方法 ( 函式 ) 。
其次,我們會想到,工作該如何開展,即工作流程。如:讓市場人員先做宣傳,學生如果想進一步瞭解,就需要諮詢師進行諮詢,諮詢完成後,學生覺得學習 JS 確實不錯,就會報名進班,財務處收學費,班主任建立學生的學籍,進行班級日常管理 , 講師開始授課,解答學生的問題,學習完成後,就業老師把學生推薦給企業,這裡也能體現團隊配合,如:學生諮詢過程中,問到了比較深的技術問題,諮詢師解答不了,就需要找講師配合等等。在物件導向程式設計思想中這就是大的業務邏輯,即程式邏輯。
再比如,我們要完成講課這件事情,首先需要考慮,必須有桌椅板凳,電腦,投影儀,講師,學生等等,其次考慮,先買桌椅板凳,電腦,投影儀,學生進教室,講師進教室開始講課。
在物件導向程式設計思想出來之前,我們更多用的是程式導向的程式設計思想。
程式導向的程式設計思想和麵向物件的程式設計思想有何區別。程式導向首先著重考慮的是程式邏輯,其次考慮的是資料。而物件導向首先著重考慮的是資料 ( 類和物件 ) ,其次考慮的是邏輯 ( 即業務邏輯 ) 。
單幹與團隊協作:程式導向程式的執行過程,更像是單幹 ; 物件導向程式的執行過程,更像是現實生活中的團隊協作。所以,我們在描述程式導向程式的邏輯時,沒有主語 ( 語文的解釋 ) ,如:先幹啥,再幹啥,然後幹啥,最後幹啥。而描述物件導向的邏輯時,有主語,如:誰先幹啥,誰再幹啥,然後誰幹啥,最後誰幹啥。
物件導向思想的核心就是一切皆物件,完成任何功能,面對的最小單位都是物件,而不是基本資料型別 ( 如:數字,布林等等 ) 。
2 、 類和物件
類和物件:在物件導向程式語言中,經常會聽到類和物件。類就是分類,就是型別,就是資料型別 ; 物件就是類的舉例,類的例項,就是變數或者常量。如:數字是資料型別,而 250 就是數字型別的一個例子 ; 人是資料型別 ( 類 ) ,唐僧就是人的一個例子 ( 物件 ) 。
物件就是複雜的資料,如:人沒法用數字,布林等基本型別描述,人是一個複雜的事物,由很多資料構成。一個人有身份證號碼,姓名,性別,年齡,把這一切組合 ( 封裝 ) 起來才是個人,人由若干個基本型別的資料組成。但這遠遠還不夠,因為死人也具備這些屬性 ( 開個玩笑,為藝術獻身一下 ) ,人能吃飯,能工作,此時,這個人才活靈活現了,所以,物件裡面包括資料和函式 ; 資料又叫屬性,成員變數,函式又叫方法。在物件導向的世界裡,習慣上會叫屬性和方法,簡單理解:物件 = 變數 + 函式。
綜上所述,物件導向是一種程式設計思想,而物件是複雜的資料型別,所以,物件導向就是,面對的都是複雜的資料型別,而不是單一的整型,布林等基本型別,物件是由若干個基本型別的資料構成,甚至物件裡還有子物件,當然還有方法。
注:以上所述的類和物件是 ES6 中的名詞
3 、 ES6 中類和物件的程式碼
1) 、定義一個程式設計師類:
class Programmer{
// 建構函式
constructor(name,sex,age){
// 屬性
this.name = name;
this.sex = sex;
this.age = age;
}
// 方法
writeCode(str){
alert(this.name+ ”在認真地寫著” +str);
}
}
2) 、例項化一個程式設計師物件:
Let p1 = new Programmer( “寶寶” , “男” ,25);// 這句話會呼叫 constructor () 函式
p1.writeCode( “貪吃蛇” );
以上程式碼,和傳統物件導向程式語言的寫法比較接近。對程式設計師來說,是福音。 Javascript 的程式碼格式越來越接近傳統物件導向程式語言的寫法。
4 、 ES3 中“類”的寫法
1) 、區分一個 ES3 和 ES6 的名詞:
ES3 中沒有類的叫法。
ES3 中的物件就是 ES6 中的類。
ES3 中的例項就是 ES6 中的物件。
2) 、 ES3 中的的程式碼
用建構函式的方式定義一個程式設計師物件 (ES6 中叫類 ) :
function Programmer (name,sex,age){
// 屬性
this.name = name;
this.sex = sex;
this.age = age;
}
// 方法
Programmer .prototype.writeCode(str){
alert(this.name+ ”在認真地寫著” +str);
}
l 例項化一個程式設計師例項 (ES6 中叫物件 ) :
Let p1 = new Programmer( “寶寶” , “男” ,25);// 這句話會呼叫 constructor () 函式
p1.writeCode( “貪吃蛇” );
對比 ES6 和 ES3 的寫法,你會發現,例項化物件的程式碼一模一樣,僅僅只是定義類的寫法不同。其實, ES6 中 class 的寫法只是個語法糖,相當於給 ES3 的寫法上增加了給一個外包裝。 ES6 中 class 寫法的背後還是 ES3 的寫法。只是程式設計師寫 ES6 的程式碼時,更加接近傳統物件導向程式語言 ( 如: java , C++ 等 ) 。這樣對於程式設計師來說,再去學習新的語言要容易得多 ; 另外, ES6 的 class 寫法更加方便閱讀。
注:此篇文章的重點是理解物件導向程式設計思想。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2639981/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Java培訓分享Java物件導向概念解析程式設計師Java物件
- 好程式設計師Java教程分享Java物件導向與程式導向程式設計師Java物件
- 10 Python物件導向程式設計:類和物件以及和Java的對比Python物件程式設計Java
- 好程式設計師Java學習路線分享怎麼理解Java物件導向程式設計師Java物件
- 好程式設計師前端教程-javascript的物件導向程式設計師前端JavaScript物件
- 好程式設計師分享javascript中的常見的相容寫法程式設計師JavaScript
- 理解Js中物件導向程式設計的繼承JS物件程式設計繼承
- 好程式設計師分享Java面試題:物件導向的四個基本特徵程式設計師Java面試題物件特徵
- JavaScript物件導向程式設計理解!JavaScript物件程式設計
- 談談我對物件導向以及類與物件的理解物件
- python中物件導向_類_物件的概念與定義Python物件
- 好程式設計師前端學習路線分享模擬JavaScript中物件導向技術程式設計師前端JavaScript物件
- 全網最適合入門的物件導向程式設計教程:01 物件導向程式設計的基本概念物件程式設計
- 好程式設計師分享JavaScript建立物件的方式!程式設計師JavaScript物件
- 【譯】Java8官方教程:物件導向程式設計的概念Java物件程式設計
- Scala的物件導向程式設計物件程式設計
- javascript:物件導向的程式設計JavaScript物件程式設計
- JS物件導向的程式設計JS物件程式設計
- 課時37:類與物件:物件導向程式設計物件程式設計
- 好程式設計師web前端分享Css3的概念和優勢程式設計師Web前端CSSS3
- 好程式設計師Java教程分享Servlet基本概念以及執行流程程式設計師JavaServlet
- Go物件導向程式設計以及在Tendermint/Cosmos-SDK中的應用Go物件程式設計
- Python如何設計物件導向的類(下)Python物件
- Python如何設計物件導向的類(上)Python物件
- 物件導向程式設計物件程式設計
- 【物件導向依賴關係概念總結】物件導向程式設計的五種依賴關係物件程式設計
- [筆記]物件導向的程式設計筆記物件程式設計
- 好程式設計師web前端學習路線之Javascript物件導向程式設計師Web前端JavaScript物件
- Python學習之路——類-物件導向程式設計Python物件程式設計
- 物件導向程式設計和`GP`泛型程式設計物件程式設計泛型
- Python - 物件導向程式設計 - 什麼是 Python 類、類物件、例項物件Python物件程式設計
- 好程式設計師Java培訓分享Java程式設計師常用的工具類庫程式設計師Java
- 物件導向程式設計和根本狀態物件程式設計
- 物件導向中類和物件的定義是什麼?物件
- Python 物件導向程式設計Python物件程式設計
- 十三、物件導向程式設計物件程式設計
- Python物件導向程式設計Python物件程式設計
- 程式設計思想 物件導向程式設計物件