物件導向程式設計(OOP) 面向過程和物件導向區別

2021-08-15 04:57:07 字數 1396 閱讀 2718

物件導向程式設計(object oriented programming--opp),是一種程式設計思想。

oop把物件作為程式的基本單元,乙個物件包含了資料和運算元據的函式。

面向過程的程式設計:把電腦程式視為一系列命令集合(一組函式順序執行)。為簡化程式設計,

面向過程把函式繼續切分為子函式(大塊函式通過切割成小函式來降低系統複雜度)。

物件導向的程式設計:把電腦程式視為一組物件的集合,每個物件可接收其他物件發來的訊息,

並處理這些訊息,電腦程式的執行就是一系列訊息在各個物件間傳遞。

python中,所有資料型別都可視為物件,也可自定義物件(其資料型別就是物件導向中的類(class)的概念。

面向過程和物件導向在程式流程上的不同,以處理學生成績表為例,為表示乙個學生成績:

1)面向過程的程式:可用乙個dict表示:

std1 =

std2 =

處理學生成績可通過函式實現,如列印學生成績:

def print_score(std):

print('%s: %s' % (std['name'], std['score']))

2) 物件導向程式設計思想:首先考慮不是執行流程

是student這種資料型別應視為乙個物件(擁有name和score兩個屬性(property))

若想列印乙個學生的成績,先建立此學生對應的物件;再,給物件發print_score訊息,讓物件自己把自己的資料列印出來。

class student(object):

def __init__(self, name, score):

self.name = name 

self.score = score 

def print_score(self):

print('%s: %s' % (self.name, self.score))

給物件發訊息實際就是呼叫物件對應的關聯函式(稱為物件的方法(method))。

物件導向的程式寫出來:

bart = student('bart simpson', 59)

lisa = student('lisa simpson', 87)

bart.print_score()

lisa.print_score()

物件導向設計思想從自然界來:自然界中類(class)和例項(instance)的概念很自然。

class是一種抽象概念,如定義的class——student,指學生這個概念,

而例項(instance)是乙個個具體的student,如:bart simpson和lisa simpson是兩個具體student。

所以,物件導向的設計思想是抽象出class,根據class建立instance。

物件導向的抽象程度比函式高(既包含資料,又包含操作函式的方法。)

物件導向(OOP)和面向過程 POP

我對物件導向和面向過程的理解 面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。在早期計算機配置低 記憶體小為了節省記憶體空間,大都採用面向過程程式設計 以時間換空間 物件導向的理解 物件導向是一種程式設計正規化,滿足物件導向程式設計的語言...

面向過程程式設計和物件導向程式設計

面向過程程式設計和物件導向程式設計 面向過程程式設計是一種以 過程為中心 的程式設計思想 分析出解決問題的步驟,然後用函式把這些步驟一步一步實現 面向過程程式設計,資料和對資料的操作是分離的。物件導向程式設計 物件導向程式設計是 將事物物件化,通過物件通訊來解決問題 物件導向程式設計,資料和對資料的...

面向過程程式設計和物件導向程式設計

面向過程程式設計和物件導向程式設計 一 面向過程程式設計 面向過程程式設計將程式分成了 資料 和 處理函式 兩部分,程式以 處理函式 為核心,如果要執行什麼操作,就將 資料 傳給相應的 處理函式 返回我們需要的結果 面向過程的思路很好掌握,上手容易,但它存在三方面的問題 1 資料和處理函式沒有直接的...