面向過程編程(如: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)