淺談面向?qū)ο?/h2>

面向過程編程(如:C、C++)面向?qū)ο缶幊蹋ㄈ纾簆ython,java)

面向過程:

根據(jù)業(yè)務邏輯從上到下寫代碼。

面向?qū)ο螅?/h2>

將數(shù)據(jù)與函數(shù)綁定在一起,進行封裝,這樣能夠更快的開發(fā)程序,減少了重復代碼的重復代碼的重寫過程

其實,面向過程編程最易被初學者接受,其往往用一段長代碼實現(xiàn)指定功能,開發(fā)過程的思路是將數(shù)據(jù)與函數(shù)按照執(zhí)行的邏輯順序組織在一起,數(shù)據(jù)與函數(shù)分開考慮。

舉個例子:

一個對電腦不了解的新手想買一臺電腦。

方法一:

1.在網(wǎng)上查找資料

2.更具自己的預算和需求定電腦的型號

3.到市場上去買電腦

方法二:

1.找一個認識的電腦高手說一下自己的需求

2.付錢,提貨


面向?qū)ο蠛兔嫦蜻^程都是解決問題的方式只不過思路不同

買電腦的第一種方式

強調(diào)的是過程和步驟,每一步都自己親子實現(xiàn)。

這種方法就是典型的面向過程

買電腦的第二種方式:

強調(diào)的式電腦高手,電腦高手是解決問題的主角,對我們而言我們并不必親自實現(xiàn)整個過程只需要找到一個電腦高手就可以解決問題。

這種解決問題的思路就是面向?qū)ο?/p>


定義:

面向?qū)ο螅╫bject-oriented;簡稱:oo)至今還沒有一個統(tǒng)一的概念,我們把它定義為:按人們認識的世界的系統(tǒng)思維方式,采用基于對象(實體)的概念建立的模型,模擬客觀世界分析、設計、實現(xiàn)軟件的辦法。

面向?qū)ο缶幊蹋╫bject oriented programming-oop)是一種解決軟件復用的設計和編程的方法。這種方法把軟件系統(tǒng) 中詳見相似的操作邏輯和操作 應用數(shù)據(jù)、狀態(tài)一類的方式描述出來,以對象實例的形式在軟件系統(tǒng)中復用,已達到提高軟件開發(fā)效率的作用。

面向?qū)ο蟮淖晕依斫猓?/h4>

面向?qū)ο笫且环N設計思想

1.符合人們的思考習慣

2.把執(zhí)行者變成指揮者

3.簡化功能,把復雜的事情簡單化

面向?qū)ο蟮娜筇卣鳎?/h4>

1.封裝

2.繼承

3.多態(tài)


類和對象:

面向?qū)ο缶幊痰膬蓚€非常重要的概念:類和對象

創(chuàng)造對象

python中,可以根據(jù)已經(jīng)定義的類創(chuàng)造出一個個對象

創(chuàng)建對象的格式:

創(chuàng)造對象demo:

class Car:

????def move(self):

????????print('車載移動')

????def stop (self):

????????print('汽車停止!')

BMW = Car() #創(chuàng)建實例對象

BMW.color = '黑色' #添加實例對象屬性

BWM.move() #調(diào)用實例對象的方法

總結(jié):

BWM = Car(),產(chǎn)生一個Car 的實例對象,此時可以通過實例對象來訪問屬性或方法

當創(chuàng)建一個對象時,就是用一個模型,來創(chuàng)造一個實物。


__init__()方法

使用方法:

class 類名:

????#初始化函數(shù),用來完成一些默認 ????????的設定

????def __init__():

????????pass

__init__()方法的調(diào)用

class Car:

? ? def __init__(self):

? ? ? ? self.wheelNum = 4

? ? ? ? self.color = ‘黑色’

? ? def move()

? ? ? ? print(‘車子移動’)

print(‘車子的顏色%s’%BWM.color)

print('車輪的數(shù)量%d'%BWM.wheelNum)

總結(jié):

當創(chuàng)建,Car對象后,在沒有調(diào)用__init__()方法的前提下,BMW就默認有了兩個屬性。原因是__init__()方法是在創(chuàng)建對象后,就立刻被默認調(diào)用了。


既然在創(chuàng)建完對象后__init__()方法已經(jīng)被默認的執(zhí)行了,我們也可以讓對象在調(diào)用__init__()方法的時候可以傳遞一些參數(shù)。

例子:

class Car:

? ? def__init__(self,wheelnum,newcolor):

? ? ? ? self.wheelnum = wheelnum

? ? ? ? self.newcolor = newcolor

????def move():

? ? ? ? print('汽車在移動')

BWM= Car(4,'green')

print(BWM.wheelnum)

print(newcolor)

總結(jié):

1.__init__()方法,在創(chuàng)建一個對象時默認被調(diào)用,不需要手動調(diào)用

2.__init__(self)中,默認有1個參數(shù)名字為self,如果在創(chuàng)建對象時傳遞了2個實參,那么? ? ? ? ? ? ? ? ?__init__(self)中出了self作為第一個形參外還需要2個形參,例如__init__(self,x,y)

3.__init__(self)中的self參數(shù),不需要開發(fā)者傳遞,python解釋器會自動把當前的對象引用傳遞進去


__str__()方法:

class?Car:

????def?__init__(self, newWheelNum, newColor):

????????self.wheelNum = newWheelNum

????????self.color = newColor

????def?__str__(self):

????????msg = "嘿。。。我的顏色是"?+ self.color + "我有"?+ str(self.wheelNum) + "個輪胎..."

????????return?msg

????def?move(self):

????????print('車在跑,目標:夏威夷')

BMW = Car(4, "白色")

print(BMW)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容