物件導向 16

2021-09-19 11:00:40 字數 4263 閱讀 2373

物件導向

一 物件導向思想

1. 面向過程.一切以事物的流程為核心.重點在'過程' 按照事物的發展流程.先幹嘛,後幹嘛,最後幹嘛

優點 : 簡單.  流水線式工作 編寫比較簡單

缺點 : 可擴充套件性差

2.物件導向 什麼是物件? 物件即是屬性和動作的集合體.物件是乙個抽象概念.

重點在'物件' :屬性和動作.類似上帝式思維

優點 : 可擴充套件性強(多型)

缺點 : 編寫相對於面向過程比較複雜.上手比較難.

物件導向和面向過程各有千秋 , 各有各的好

二 物件導向如何編寫

在**中定義乙個類,就相當於畫圖紙

class 類名:

pass

建立物件 : 類名()

class

car:

#出廠設定.(__init__) 構造方法

def__init__(self,color,pai,pailiang,own): #

self 表示當前類的物件

#繫結屬性

self.color =color

self.pai =pai

self.pailiang =pailiang

self.own =own

#車能跑 跑是乙個動作 要寫函式(方法)

def run(self): #

當前類的物件

print('

%s顏色的車在瘋狂的跑

'%self.color)

deftiaogao(self):

print('

有一台%s顏色的車在瘋狂跳高

'%self.color)

c1 = car('

紅','

京a66666

','2.0t

','alex')

c1.run()

#物件.方法()

c1.tiaogao()

view code

class

haohan:

def__init__

(self,name,waihao,jineng):

self.name =name

self.waihao =waihao

self.jineng =jineng

defdahu(self):

print('

%s%s在幹老虎

'%(self.waihao,self.name))

defshasaozi(self):

print('

%s%s在殺嫂子

' %(self.waihao, self.name))

deftitianxingdao(self):

print('

%s%s在替天行道

' %(self.waihao, self.name))

wusong = haohan('

武松','

行者','喝酒'

)wusong.dahu()

wusong.shasaozi()

wusong.titianxingdao()

view code

1.構造方法:

def __init__(self,屬性):

self.屬性 = 屬性 # 物件所擁有的共同特徵

2.普通方法: # 將物件擁有的功能 類似於函式,不過改叫方法了

def 方法名(self,引數列表):

pass

self 表示當前類的物件 當前正在執行這個動作的物件.

物件.方法()

類名.方法(物件,引數)

總結 : 類與物件的關係 : 類是對事物的總結.抽象的概念 類用來描述物件 物件是類的例項化結果.物件能執行哪些方法 都由類來決定,類中定義了什麼,物件就擁有什麼

三 物件導向和物件導向過程的對比(**,思想).

1. 裝大象 指令碼語言 面向過程比物件導向要簡潔的多

1.1.面向過程

#

非函式式

print('

開啟冰箱門')

print('

裝大象'

)print('

關上冰箱門')

#函式式程式設計

defkaimen():

print('

開啟冰箱門')

defzhuangdaxiang():

print('

裝大象'

)def

guanmen():

print('

關上冰箱門')

kaimen()

zhuangdaxiang()

guanmen()

1.2.物件導向

#

物件導向

class

elphant:

defopen(self):

print('

大象會開門')

defzhuang(self):

print('

把自己裝進去')

defclose(self):

print('

把門關上')

#建立物件

e =elphant()

e.open()

e.zhuang()

e.close()

相比較而言 :面向過程要比物件導向簡單

再有 有乙個小豬 叫佩奇,今年40歲了,會使用必殺技嘴巴嘟嘟,他不光大戰奧特曼,還會大戰蝙蝠俠,蜘蛛俠.

2.1 面向過程:

#

函式式def

da_ao_te_man(name,age,jineng):

print('

%s,%s歲了,用技能%s打奧特曼

' %(name,age,jineng))

defda_zhi_zhu_xia(name,age,jineng):

print('

%s,%s歲了,用技能%s打蜘蛛俠

' %(name,age,jineng))

defda_bian_fu_xia(name,age,jineng):

print('

%s,%s歲了,用技能%s打蝙蝠俠

' %(name,age,jineng))

da_ao_te_man(

'小豬佩奇

','40

','嘴巴嘟嘟')

da_zhi_zhu_xia(

'小豬佩奇

','40

','嘴巴嘟嘟')

da_bian_fu_xia(

'小豬佩奇

','40

','嘴巴嘟嘟

')

2.2 物件導向:

class

pig:

def__init__

(self,name,age,jineng):

self.name =name

self.age =age

self.jineng =jineng

defda_ao_te_man(self):

print('

%s,%s歲了,用技能%s打奧特曼

' %(self.name,self.age,self.jineng))

defda_zhi_zhu_xia(self):

print('

%s,%s歲了,用技能%s打蜘蛛俠

' %(self.name, self.age, self.jineng))

defda_bian_fu_xia(self):

print('

%s,%s歲了,用技能%s打蝙蝠俠

' %(self.name,self.age,self.jineng))

peiqi = pig('

小豬佩奇

','40

','嘴巴嘟嘟')

peiqi.da_ao_te_man()

peiqi.da_zhi_zhu_xia()

peiqi.da_bian_fu_xia()

物件導向思想要稍微好於面向過程一些. 因此要根據不同的業務邏輯來決定用哪種思想

四 物件導向的三大特徵:

1.封裝: 把很多內容封裝在乙個物件中

2.繼承:子類可以自動擁有父類中除了私有屬性外其他所有內容 可避免寫很多重複的功能和** 即 x 是一種 y 的時候 x繼承y

3. 多型

posted @

2018-09-25 17:23

你沒有想象的那麼重要 閱讀(

...)

編輯收藏

物件導向 16

物件導向 一 物件導向思想 1.面向過程.一切以事物的流程為核心.重點在 過程 按照事物的發展流程.先幹嘛,後幹嘛,最後幹嘛 優點 簡單.流水線式工作 編寫比較簡單 缺點 可擴充套件性差 2.物件導向 什麼是物件?物件即是屬性和動作的集合體.物件是乙個抽象概念.重點在 物件 屬性和動作.類似上帝式思...

day16 物件導向

一.物件導向思想 1.面向過程.重點在 過程 按照實物的發展流程.先幹嘛,後幹嘛,最後幹嘛.優點 簡單.流水線式的工作 缺點 可擴充套件性差.2.物件導向.什麼是物件?物件是屬性和動作的集合體.物件是乙個抽象的概念.重點在 物件 屬性和動作.類似上帝式的思維 優點 可擴充套件性強 多型 缺點 編寫相...

16 關於物件導向的練習

一 在這裡插入 片 package duixiang public class dog public dog string name,int age 定義行為 public void chase package duixiang public class testdog 二 建立乙個動物類 姓名 年...