物件導向思想概述
隨著需求的更改,功能的增多,需要把不同的功能進行封裝,其中功能類似的封裝在一起,這樣一來結構就清晰了很多。用的時候找到對應的類就可以了。這就是物件導向的思想。
物件導向是一種更符合我們思想習慣的思想,可以將複雜的事情簡單化。學習程式語言,就是為了模擬現實世界的事物,實現資訊化。
物件導向和面向過程的區別
面向過程強調的是每乙個功能的步驟;物件導向強調的是物件,然後由物件去呼叫功能。
物件導向的特點
(1)封裝(encapsulation);
(2)繼承(inheritance);
(3)多型(polymorphism)
下面來舉乙個例子展示物件導向思想 /*
*教練和運動員案例
* 桌球運動員和籃球運動員。桌球教練和籃球教練。
* 為了出國交流,跟桌球相關的人員都需要學習英語。
*請分析這個案例中有哪些抽象類,哪些介面,哪些具體類?
* 教練和運動員都是中國人,人可作為此處的頂級抽象類;
* 教練可作為人的抽象類,子類有桌球教練、籃球教練;
* 運動員可作為人的抽象類,子類有桌球運動員、籃球運動員;
* 額外的技能(學習英語)可作為介面,由桌球運動員類去實現; */
//中國人抽象類
abstract
class
chinese
public chinese(string gender,string name,int age)
public
void
sleeping()
public
abstract void eating();
public
void
setname(string name)
public
string getname()
public
void
setgender(string gender)
public
string getgender()
public
void
setage(int age)
public int getage() }
//定義介面,已擴充套件桌球有關的子類功能
inte***ce speakenglish
//教練抽象類
abstract
class
coachextends chinese
public
coach(string gender,string name,int age)
public abstract void teach(); }
//運動員抽象類
abstract
classathleteextends
chinese
public
athlete(string gender,string name,int age)
public abstract void training(); }
//籃球教練子類
class basketballcoach extends
coach
public
basketballcoach(string gender,string name,int age)
public
void
teach()
public
void
eating() }
//桌球教練子類
class
pingpongcoachextends
coachimplementsspeakenglish
public
pingpongcoach(string gender,string name,int age)
public
void teach()
public
voidspeakenglish()
public
void
eating() }
//籃球運動員子類
class
basketballathletextends
athlete
public
basketballathlet(string gender,string name,int age)
public
void
training()
public
void eating() }
//桌球運動員子類
class
pingpongathleteextends
athleteimplementsspeakenglish
public
pingpongathlete(string gender,string name,int age)
public
void
training()
public
void
speakenglish()
public
void
eating() }
//執行結果
class
caseabstractinte***ce }
執行效果:
舉例說明物件導向和面向過程的區別
兩種方法都是程式設計中的比較常用的方法,從理論上來說,都能達到用電腦程式來解決實際問題的目的,只不過是其中所體現出來的思想不一樣而已。面向過程 面向過程的思想是把乙個專案 一件事情按照一定的順序,從頭到尾一步一步地做下去,先做什麼,後做什麼,一直到結束。這種思想比較好理解,其實這也是乙個人做事的方法...
java 設計模式舉例說明
1,單例設計模式 packageorg.test classa public statica getinstance public classtestdemo 2,工廠設計模式 客戶端不再與具體的子類聯絡在一起。packageorg.test inte cefruit classfruit clas...
物件導向設計基本原則(舉例說明)
單一職責原則 srp 就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。舉例說明 設計俄羅斯方塊遊戲,把遊戲介面和邏輯進行分離...