一、面向?qū)ο蟮母拍?/h2>
面向?qū)ο髈op(onject oriented programming),與之對(duì)應(yīng)的還有面向過程,向C語言就是面向過程的
理解過程和函數(shù)?
過程:是早期的一個(gè)編程概念,過程類似于函數(shù),只能執(zhí)行,但是沒有返回值
函數(shù):不僅能執(zhí)行,還可以返回結(jié)果(return)
二、深刻理解什么時(shí)面向?qū)ο蠛兔嫦蜻^程
面向過程:—-側(cè)重于怎么做?
把完成某個(gè)需求的所有步驟從頭到尾逐步實(shí)現(xiàn) 根據(jù)開發(fā)要求,將某些功能獨(dú)立的代碼封裝成一個(gè)又一個(gè)函數(shù) 最后完成的代碼,就會(huì)死順序的調(diào)用不同的函數(shù)
特點(diǎn):
注重步驟與過程,不注重職責(zé)分工 如果需求復(fù)雜,代碼會(huì)變得很復(fù)雜 開發(fā)復(fù)雜項(xiàng)目,沒有固定的套路,開發(fā)難度很大
面向?qū)ο螅?#8212;側(cè)重于誰來做?
相比較函數(shù),面向?qū)ο笫歉蟮姆庋b,根據(jù)職責(zé)在一個(gè)對(duì)象中封裝多個(gè)方法
在完成某個(gè)需求之前,首先確定職責(zé)—要做的事情(方法) 根據(jù)職責(zé)確定不同的對(duì)象,在對(duì)象內(nèi)部封裝不同的方法(或是多個(gè)方法) 最后完成代碼,就是順序的讓不同對(duì)象調(diào)用不同的方法
特點(diǎn):
注重對(duì)象和職責(zé),不同的對(duì)象承擔(dān)不同的職責(zé) 更加適合復(fù)雜的需求變化,是專門應(yīng)對(duì)復(fù)雜項(xiàng)目的開發(fā)提供的固定套路 需要在面向過程的基礎(chǔ)上,再學(xué)習(xí)一些面向?qū)ο蟮恼Z法
面向?qū)ο缶幊逃蠵ython 、JAVA 、C++
三、類與對(duì)象
在程序開發(fā)中,先有類,再有對(duì)象
類:是對(duì)一群具有相同特征或行為的事物的一個(gè)統(tǒng)稱,不能直接使用(比如:在飛機(jī)制造前先設(shè)計(jì)的哪個(gè)圖紙,圖紙就是一個(gè)類,可以用著一個(gè)圖紙制作出好多飛機(jī),但是,圖紙是不能飛上天的)特征被稱為屬性,行為被稱為方法
對(duì)象:有類創(chuàng)建出來的一個(gè)具體存在的,可以直接使用的(飛機(jī)可以飛上天)
類的設(shè)計(jì):
在使用面相對(duì)象開發(fā)前,應(yīng)該首先分析需求,確定一下,程序中需要包含哪些類!
六、用相同的類可以創(chuàng)建不同的對(duì)象
案例【1】
class pig: def eat(self): print '小豬愛吃飯' def sleep(self): print '小豬愛睡覺' Pig = pig() Pig.eat() Pig.sleep() addr= id(Pig) print addr print '%x' %addr print '%d'%addr #用相同的類可以創(chuàng)建不同的對(duì)象 lazy_pig=Pig lazy_pig.eat() lazy_pig.sleep() print lazy_pig lazy_pig2=lazy_pig print lazy_pig2
相關(guān)推薦
- raksmart新加坡虛擬主機(jī)有哪些?
- 自媒體推廣實(shí)時(shí)監(jiān)控從服務(wù)器帶寬到用戶行為解決方法
- 個(gè)人站長(zhǎng)消亡論?從“消失”到“重生”的三大破局路徑
- DeepSeek企業(yè)級(jí)部署RakSmart裸機(jī)云環(huán)境準(zhǔn)備指南
- 采訪普洛斯數(shù)據(jù)中心郭仁聲:智算時(shí)代 我們需要怎樣的算力與數(shù)據(jù)中心
- 入門級(jí)攻略:如何容器化部署微服務(wù)?
- 新手小白怎么通過云服務(wù)器跑pytorch?
- 云計(jì)算平臺(tái)層(PaaS)指的是什么?常見的應(yīng)用場(chǎng)景盤點(diǎn)