色欲香天天综合网站-狼狼综合久久久久综合网-丰满少妇人妻久久久久久-97夜夜澡人人爽人人模人人喊

返回首頁

怎么樣才能更好的掌握面向?qū)ο缶幊趟枷耄╫op)啊?

來源:www.cy2002.cn???時間:2022-09-26 06:12???點擊:251??編輯:admin 手機版

面向?qū)ο笫鞘裁??你可以說出這個答案嗎(相信沒有正確答案)?我覺得面向?qū)ο笾皇擒浖こ讨械囊环N工具而已。那軟件工程的目的是什么?目的是編寫出可靠、高效、靈活、易擴展、可復(fù)用的軟件產(chǎn)品。既然面向?qū)ο笫擒浖こ坍?dāng)中的一種工具,那我們使用面向?qū)ο蟮哪康囊矐?yīng)該是這些。就是說我們用面向?qū)ο蟮哪康氖蔷帉懗隹煽?、高效、靈活、易擴展、可復(fù)用的軟件產(chǎn)品。我們一定要以這個目的為中心來學(xué)習(xí)和使用面向?qū)ο螅蝗荒銜シ较?。大多時候講面向?qū)ο?,多是講面向?qū)ο蟊旧恚恢v怎么利用面向?qū)ο笕ソ鉀Q實際的問題,這樣很容易誤導(dǎo)初學(xué)者。再加上華麗的文字,很多人覺得只要面向?qū)ο罅?,什么事都可以O(shè)K了。舉個例子,給你一把最好的槍,教你如何使用它,過了一段時間你對這把槍了如指掌?,F(xiàn)在讓你去打靶,結(jié)果100發(fā)子彈,一發(fā)都沒有打中。咦,我不是用了最好的槍了嗎?為什么一發(fā)都打不中?因為你不知道射擊要領(lǐng),不知道如何瞄準靶心,結(jié)果當(dāng)然可想而知了。我們要OOP(Object-Oriented Programming),不要POO(Programming Object-Oriented)。

面向?qū)ο笥?大特征(一般講面向?qū)ο蠖紩岬竭@三個),繼承、封裝、多態(tài)。按字面上理解,對我們來說是全新的概念,但只要你分析一下,就會發(fā)現(xiàn)這些都是我們在編程中,常常用到的概念。

封裝是什么?只有在面向?qū)ο罄锊庞蟹庋b的概念嗎?不是的,只要是程序就有封裝。大家常常用的變量、函數(shù)就是封裝。舉個例子,你寫了取用戶狀態(tài)的函數(shù),對調(diào)用這個函數(shù)的程序來說,取用戶狀態(tài)邏輯是封閉的,所以邏輯發(fā)生變化時,不會對調(diào)用的程序造成影響。變量也是封裝,你定義了一個int變量,無論你給它賦什么值,對調(diào)用這個變量的程序來說,就是一個整數(shù)型類型的值。提到封裝不得不提接口,因為封裝是做接口的過程。接口是什么?只有用了interface這個關(guān)鍵字才是接口嗎?詞典里的解釋是物體的接觸面、界面。世界是由物體組成的,所以我們的生活當(dāng)中到處是接口。你看到一個球,它是圓的,圓就是接口。我們的程序也都是由接口組成的,數(shù)據(jù)類型、關(guān)鍵字、函數(shù)、變量等等。比如說看到int這個詞,你就知道它是整數(shù)型數(shù)據(jù)類型,我們可以說:int是整數(shù)型數(shù)據(jù)類型的接口。所以封裝和接口不是面向?qū)ο筇赜械母拍?,只不過在面向?qū)ο罄锼鼈兊姆秶鷶U大了而已。我們在網(wǎng)上常常能看到面向?qū)ο蠛兔嫦蜻^程之間的討論,說哪一個好。其實,這些都是不重要的,因為用哪一個方法,都是做接口的過程。關(guān)鍵在于使用這些方法的程序員,看你的抽象能力怎么樣了。

多態(tài)可能是我們最難理解的一個概念,polymorphism這個詞,因為大家沒有學(xué)習(xí)過面向?qū)ο蟮脑挘呛茈y碰到的。其實這個也是我們常常用到的一個概念,只不過沒有給它命名而已(至少沒用多態(tài)來命名它)??聪旅娴睦?, double a = 0,b=5,c=0;

a = 1;

c = a + b;

cout << c << endl;

a = 3.5f;

c = a + b;

cout << c endl;

輸出結(jié)果是

6

8.5

我們先定義了三個變量,a、b、c,先后給A賦值1,3.5,然后輸出a+b的結(jié)果,可以看到,同樣的邏輯隨著a值的變化,輸出的結(jié)果也是不一樣的(多態(tài)的效果)。在這里double是高類型(相當(dāng)于父類),1、3.5(int,float)是低類型(相當(dāng)于子類)。這個例子是變量的多態(tài),那有沒有函數(shù)多態(tài)的例子,當(dāng)然有,寫過C的人都知道函數(shù)指針,它就是函數(shù)的多態(tài)。

終于要說說對象了,重點就在這里~ 第一,類是一個模塊。以前我們的模塊是一個文件,比如一個.c、.cpp等等。一個模塊文件里寫什么功能函數(shù)沒有限制(理論上沒有明確定義該怎么寫),按開發(fā)人員的經(jīng)驗來部署這些功能函數(shù)。所以很容易寫出超級模塊(一個文件里有幾十個、幾百個函數(shù)),代碼維護起來很不方便。面向?qū)ο缶秃芎玫慕鉀Q了這個問題,只要看過面向?qū)ο蠡A(chǔ)理論的程序員都知道,先定義類,然后把相關(guān)的函數(shù)放到類里。面向?qū)ο罄镉幸粋€原則,類單一職責(zé)原則,遵循這個原則的話,你可以寫出很好的模塊出來。更重要的是我們溝通維護起來也很方便,比如以前溝通可能是這樣的,修改customer.cpp文件里的某一個函數(shù),面向?qū)ο罄锬兀梢赃@樣說修改客戶類的某一個方法。這個非常重要,因為這個跟人的思維有密切關(guān)系。比如我們到餐廳去吃飯,你對服務(wù)員說我要一瓶啤酒,我確信服務(wù)員會再問你一句:先生,你要什么牌子的啤酒?但如果你說:我要一瓶百威啤酒,服務(wù)員肯定不會再問你。要是把一個系統(tǒng)看成生產(chǎn)線的話,類就是工人。一個工人只負責(zé)一個操作,A負責(zé)打孔,B負責(zé)裝螺絲釘,C負責(zé)包裝。這樣做非常有效率,而且出了問題,很好確定問題出現(xiàn)在哪個工人。第二,類是一個自定義數(shù)據(jù)類型。理解了這點,你的思路會清晰起來,也不會對面向?qū)ο蟾械侥吧?。看下面的簡單例子?/p>

//計算兩個數(shù)的合

double sum(double a,double b);

int _tmain(int argc, _TCHAR* argv[])

{

double a=0,b=0;

a = 1;

b = 2;

cout << sum(a,b) << endl;

a = 1.2f;

b = 2.3f;

cout << sum(a,b) << endl;

return 0;

}

//計算兩個數(shù)的合

double sum(double a,double b)

{

return a+b;

}

例子里,低類型的int和float賦值給了高類型的double,然后用sum函數(shù)它們的合。如果編程語言不支持這種轉(zhuǎn)換的話,我們只好寫兩個函數(shù)了,

//處理int的計算

int sum(int a,int b);

//處理float的計算

float sum(float a,float b);

所以我們可以確定-同類型當(dāng)中,只有提供從低到高類型的轉(zhuǎn)換,才可以實現(xiàn)多態(tài)的效果(不知道,沒有面向?qū)ο笠郧笆鞘裁锤拍?。當(dāng)然,類作為數(shù)據(jù)類型,也需要這種轉(zhuǎn)換了。但類是自定義類型,所以,哪個是高類型,哪個是低類型,必須要由我們來定義:父類是高類型、子類是低類型(繼承是這么誕生的嗎:))。繼承讓我們可以復(fù)用父類的代碼,但在這個例子中我們可以看出,它的主要目的是在多態(tài)。

上面我們討論了面向?qū)ο蠛退娜齻€特征,我們可以看到,這些都是編程當(dāng)中常常用到的概念。我覺得最大的突破是給我們提供了新的思維模式、新的代碼組織結(jié)構(gòu)、定義了以前軟件設(shè)計中比較模糊的概念(比如多態(tài))。那我們怎么轉(zhuǎn)換我們的思維呢?把你想象成公司的經(jīng)理就可以了。你現(xiàn)在是一家公司的經(jīng)理了,部門就是子系統(tǒng),員工就是對象。你需要做的就是這些,

-每天會有很多事需要你處理,做好心里準備。

-公司做什么業(yè)務(wù)?

-要建立幾個部門?,規(guī)定部門之間的溝通規(guī)則。

-需要什么樣的職位?每個職位要做的事是什么?

-規(guī)定業(yè)務(wù)流程,業(yè)務(wù)流程中,需要哪個部門參與?需要哪個員工參與?他們之間怎么溝通?

-借鑒成功的管理模式,但要符合公司的情況,不要盲目地使用,因為代價太大了。

-不要設(shè)置太多的溝通環(huán)節(jié),能簡單就簡單,只要完成目標就可以。

-準備應(yīng)對變化。世界上沒有對于錯,永遠是前進中不斷修正。

就這些啦?恩,道理很簡單,但要做一個好公司就非常困難了,因為變數(shù)太大了。面向?qū)ο笠彩且粯拥模枰冻雠?,才可以做好?/p>

頂一下
(0)
0%
踩一下
(0)
0%
狠狠色噜噜狠狠狠狠97首创麻豆| 99久久无色码中文字幕| 亚洲精品一区国产精品丝瓜| 亚洲精品久久激情国产片| 超碰国产精品久久国产精品99| 亚洲日韩一区二区三区| 久久国产加勒比精品无码| 中文字幕aⅴ人妻一区二区| 国产精品高清一区二区三区| 亚洲色爱免费观看视频| 天天躁日日躁aaaaxxxx| 精品黑人一区二区三区久久| 94久久国产乱子伦精品免费| 国产午夜精品一区二区三区软件| 免费观看激色视频网站| 久久精品国产一区二区电影| 欧美日韩精品一区二区在线播放| 国产精品国色综合久久| 国产精品无码久久av| 国产美女口爆吞精普通话| 久久精品亚洲乱码伦伦中文| 亚洲av成人一区二区三区观看| 伊人情人综合网| 亚洲精品久久久久久久蜜桃| 全免费a级毛片免费看视频| 最近中文字幕在线中文视频| 私人情侣网站中文| 久久偷看各类wc女厕嘘嘘| 国产产在线精品亚洲aavv| 神马影院午夜dy888| 女人扒开屁股爽桶30分钟| 欧美日韩亚洲国产精品| 国产重口老太和小伙| 国产精品国产三级国产专播| 亚洲av精品一区二区三区| 国产精品美女久久久久av爽李琼| 欧美精品偷自拍另类在线观看| 小罗莉极品一线天在线| 天堂资源中文最新版在线一区| 国产精品无码久久综合网| 国产做爰xxxⅹ久久久精华液|