藍(lán)鷗(www.lanou3g.com)是一家集產(chǎn)囱怕、學(xué)功舀、研萍倡、創(chuàng)為一體的綜合性移動(dòng)互聯(lián)網(wǎng)研發(fā)培訓(xùn)機(jī)構(gòu),致力于iOS開發(fā)辟汰、Unity3D游戲開發(fā)列敲、Android開發(fā)、HTML5前端開發(fā)和Web安全攻防等技術(shù)人才的培養(yǎng)帖汞。
一戴而、面向?qū)ο蟾拍?br>
面向?qū)ο缶幊淌且粋€(gè)比較抽象的概念,為了能幫助大家了解這個(gè)問題翩蘸,小波老師為大家舉例進(jìn)行說明所意。
而在了解面向?qū)ο缶幊讨埃覀冃枰獙?duì)面向過程編程做一些認(rèn)識(shí)催首!這方便我們來了解面向?qū)ο缶幊痰模?/p>
1扁眯、面向過程——分析出解決問題所需要的步驟然后一步步實(shí)現(xiàn)
面向?qū)ο蠛兔嫦蜻^程就是兩種不同的編程思想,被大家所熟知的C語言翅帜,自從C++出來之后姻檀,有了類和對(duì)象存在之后,才有了面向?qū)ο蟮某绦蜷_發(fā)思想涝滴。
在面向?qū)ο蟮某绦蜷_發(fā)運(yùn)營中绣版,如果我們要解決一個(gè)問題,首先需要分析歼疮,要解決這個(gè)問題所需要的步驟杂抽,按照步驟一步步的實(shí)現(xiàn)……這個(gè)就是面向過程
2、面向?qū)ο蟆褬?gòu)成問題的事物分解成對(duì)象
3韩脏、對(duì)象用來描述某個(gè)事物在解決問題過程中的行為
4缩麸、面向?qū)ο笕筇匦裕悍庋b,繼承赡矢,多態(tài)
5杭朱、面向?qū)ο髸r(shí)程序更具重復(fù)性,靈活性和擴(kuò)展性
二吹散、面向過程來實(shí)現(xiàn)
1.舉例:把大象裝冰箱里需要幾步
usingSystem;
namespaceLesson_14
{
classMainClass{
publicstaticvoidMain(string[]args)
{
//1弧械、打開冰箱門
//2、把大象賽進(jìn)冰箱
//3空民、關(guān)上冰箱門
//面向過程思想來實(shí)現(xiàn)
Console.WriteLine("打開冰箱門");
Console.WriteLine("把大象塞進(jìn)冰箱門");
Console.WriteLine("關(guān)閉冰箱門");
}
}
}
2.需求變了:把貓塞進(jìn)冰箱
usingSystem;
namespaceLesson_14
{
classMainClass{
publicstaticvoidMain(string[]args)
{
//1刃唐、打開冰箱門
//2、把大象賽進(jìn)冰箱
//3、關(guān)上冰箱門
//面向過程思想來實(shí)現(xiàn)
Console.WriteLine("打開冰箱門");
Console.WriteLine("把大象塞進(jìn)冰箱門");
Console.WriteLine("關(guān)閉冰箱門");
Console.WriteLine("打開冰箱門");
Console.WriteLine("把貓塞進(jìn)冰箱門");
Console.WriteLine("關(guān)閉冰箱門");
}
}
}
3.需求變了,在打開和關(guān)閉冰箱的過程中画饥,冰箱里面的等會(huì)跟著亮和滅
usingSystem;
namespaceLesson_14
{
classMainClass{
publicstaticvoidMain(string[]args)
{
//1衔瓮、打開冰箱門
//2、把大象賽進(jìn)冰箱
//3抖甘、關(guān)上冰箱門
//面向過程思想來實(shí)現(xiàn)
Console.WriteLine("打開冰箱門");
Console.WriteLine("開燈");
Console.WriteLine("把大象塞進(jìn)冰箱門");
Console.WriteLine("關(guān)閉冰箱門");
Console.WriteLine("關(guān)燈");
Console.WriteLine("打開冰箱門");
Console.WriteLine("開燈");
Console.WriteLine("把貓塞進(jìn)冰箱門");
Console.WriteLine("關(guān)閉冰箱門");
Console.WriteLine("關(guān)燈");
}
}
}
注意:在編程的過程中报辱,比較忌諱的是復(fù)制代碼,一旦代碼需要单山,復(fù)制的代碼部分就需要進(jìn)行大量的修改,設(shè)置會(huì)帶有一些bug隱患幅疼!
試想需求有改變了米奸,不只把大象和貓放進(jìn)去,在放100多個(gè)東西爽篷,那么有些代碼我們需要復(fù)制100多次……
關(guān)于面向過程的舉例就到這里悴晰,雖然面向過程編程可以實(shí)現(xiàn)我們的最終目的,但是在真正的實(shí)踐過程中逐工,會(huì)遇到很多問題……
三铡溪、用面向?qū)ο缶幊虂韺?shí)現(xiàn)
1、把大象裝冰箱里需要幾步
我們來分析一下在這個(gè)過程中泪喊,1棕硫、打開冰箱門2、把大象賽進(jìn)冰箱3袒啼、關(guān)上冰箱門哈扮。分析完步驟,在解決這個(gè)問題的步驟中都有什么重要的事物起著非常重要的作用蚓再?在分析的過程中滑肉,我們發(fā)現(xiàn)對(duì)冰箱的操作是非常重要的步驟!
usingSystem;
namespaceLesson_14
{
//1摘仅、創(chuàng)建冰箱類靶庙,通過給類添加字段,屬性或方法娃属,讓它具有特定的行為
publicclassRefrigerator{
//打開冰箱門
publicvoidOpen(){
Console.WriteLine("打開冰箱門");
}
//關(guān)閉冰箱門
publicvoidClose(){
Console.WriteLine("關(guān)閉冰箱門");
}
//把某物塞進(jìn)冰箱
publicvoidPuth(stringthing){
Console.WriteLine("把"+thing+"塞進(jìn)冰箱");
}
}
classMainClass{
publicstaticvoidMain(string[]args)
{
Refrigeratorr=newRefrigerator();
r.Open();
r.Puth("大象");
r.Close();
}
}
}
2六荒、需求變量:老板說把老鼠也裝進(jìn)冰箱
Refrigeratorr=newRefrigerator();
r.Open();
r.Puth("大象");
r.Close();
r.Open();
r.Puth("老鼠");
r.Close();
3、需求又變了:在打開冰箱門的時(shí)候需要開燈矾端,關(guān)閉冰箱門之后需要關(guān)燈
usingSystem;
namespaceLesson_14
{
//1恬吕、創(chuàng)建冰箱類,通過給類添加字段须床,屬性或方法铐料,讓它具有特定的行為
publicclassRefrigerator{
//打開冰箱門
publicvoidOpen(){
Console.WriteLine("打開冰箱門");
Console.WriteLine("開燈");
}
//關(guān)閉冰箱門
publicvoidClose(){
Console.WriteLine("關(guān)閉冰箱門");
Console.WriteLine("關(guān)燈");
}
//把某物塞進(jìn)冰箱
publicvoidPuth(stringthing){
Console.WriteLine("把"+thing+"塞進(jìn)冰箱");
}
}
classMainClass{
publicstaticvoidMain(string[]args)
{
//1、打開冰箱門
//2、把大象賽進(jìn)冰箱
//3钠惩、關(guān)上冰箱門
//面向過程思想來實(shí)現(xiàn)
//Console.WriteLine("打開冰箱門");
//Console.WriteLine("開燈");
//Console.WriteLine("把大象塞進(jìn)冰箱門");
//Console.WriteLine("關(guān)閉冰箱門");
//Console.WriteLine("關(guān)燈");
//·Console.WriteLine("打開冰箱門");
//Console.WriteLine("開燈");
//Console.WriteLine("把貓塞進(jìn)冰箱門");
//Console.WriteLine("關(guān)閉冰箱門");
//Console.WriteLine("關(guān)燈");
//面向?qū)ο笏枷雽?shí)現(xiàn)
//2柒凉、通過組合對(duì)象的行為,解決問題
Refrigeratorr=newRefrigerator();
r.Open();
r.Puth("大象");
r.Close();
r.Open();
r.Puth("老鼠");
r.Close();
}
}
}
在這個(gè)過程中篓跛,我們發(fā)現(xiàn)面向?qū)ο缶幊滔ダ蹋哂兄貜?fù)性,靈活性和擴(kuò)展性愧沟。
重復(fù)性:我們已經(jīng)有一個(gè)冰箱類蔬咬,我們需要對(duì)冰箱添加新的功能,我們不需要對(duì)原有冰箱類進(jìn)行任何改動(dòng)沐寺,只需要添加新的方法林艘!
靈活性,我們定義了把某物塞進(jìn)冰箱混坞,我們只需要調(diào)用的時(shí)候把大象狐援,貓,老鼠放進(jìn)去即可究孕。機(jī)具靈活性啥酱!
擴(kuò)展性:如果我們要添加新的功能,如開燈和關(guān)燈厨诸,不需要對(duì)之前代碼做修改镶殷!
面對(duì)對(duì)象思想是非常抽象的思想,只有我們積累了一定的代碼微酬,解決過一些很實(shí)際的問題批钠,我們自然能理解面向?qū)ο蟮拿钣茫?/p>