一、物件導向
1、什麼是物件
(1)物件是記憶體中專門用來存放資料的一塊區域
(2)物件可以存放各種資料(比如:數字、布林值、**)
(3)物件由三部分組成:
①物件的標識(id)
②物件的型別(type)
③物件的值(value)
2、面向過程的語言
(1)面向過程指將我們的程式的邏輯分解為乙個乙個的步驟,通過對每個步驟的抽象,來完成程式
(2)例子:
- 孩子上學
1、媽媽起床
2、媽媽上廁所
3、媽媽洗漱
4、媽媽做早飯
5、媽媽叫孩子起床
6、孩子上廁所
7、孩子洗漱
8、孩子吃飯
9、孩子背書包上學
(3)面向過程的程式設計思想將乙個功能分解為乙個乙個小的步驟,我們通過完成乙個乙個的小的步驟來完成乙個程式,
- 這種程式設計方式,符合我們人類的思維,編寫起來相對比較簡單
- 但是這種方式編寫的**往往只適用於乙個功能,如果要再實現別的功能,往往要重新編寫**,可復用性比較低,並且難於維護
2、物件導向(oop)
(1)python是一門物件導向的程式語言
(2)所謂的物件導向的語言,簡單理解就是語言中的所有操作都是通過物件來進行的
-物件導向的程式語言,關注的是物件,而不是關注過程
- 對於物件導向的語言來說,一切都是物件
(4)例子:
- 孩他媽起床叫孩子上學
(5)物件導向的程式設計思想,將所有的功能功能儲存到對應的物件中
- 比如,媽媽功能儲存到媽媽的物件中,孩子的功能儲存到孩子物件中,要使用某個功能,直接找到對應的物件即可
- 這種方式編寫的**,比較容易閱讀,並且比較容易維護,容易復用
- 但是這種方式編寫,不太符合常規的思維,所以編寫起來稍微麻煩一點
(6)歸納,物件導向的思想
① 找物件
② 搞物件
二、類1、類,簡單理解就相當於乙個圖紙,在程式中我們需要根據類來創造物件,類就是物件的圖紙
- 我們也稱物件是類的例項( instance )
- 如果多個物件是通過乙個類建立的,我們稱這些物件是一類物件
- 像 int() float() bool() str() list()…這些都是類
- a = int(10) ( 建立乙個int類的例項等價於 a=10)
- 我們自定義的類都需要使用大寫字母開頭,使用大駝峰命名法(帕斯卡命名法)來對類命名
# 定義乙個簡單的類
# 使用class關鍵字來定義類,語法和函式很像
# class 類命([父類]) :
# **塊
class
myclass()
:pass
# 使用myclass建立乙個物件
# 使用類來建立物件,就像呼叫乙個函式一樣
mc = myclass(
)# mc就是通過myclass建立的物件,mc是myclass的例項
mc2 = myclass(
)
mc3 = myclass(
)# mc mc2 mc3都是myclass的例項,他們都是一類物件
# isinstance()用來檢查乙個物件是否是乙個類的例項
result =
isinstance
(mc2,
str)
print
(mc,
type
(mc)
)
2、類就是乙個物件,就是乙個用來建立物件的物件
- 類是type型別的物件,定義類實際上就是定義了乙個type型別的物件
(1)實用類建立物件的流程
①建立乙個變數mc
②在記憶體中建立乙個新物件
③將物件的id賦值給變數
- 現在通過myclass這個類建立的物件都是乙個空物件
- 也就是物件中實際上什麼都沒有,就相當於是乙個空的盒子
- 可以向物件中新增變數,物件中的變數稱為屬性
- 語法 : 物件.屬性名 = 屬性值
物件導向類
1.類和例項 類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。記憶體位址 給例項繫結屬性 由於類可以起到模板的作用,因此,可以在建立例項的時候,把一些我們認為必須繫結的屬性強制填寫進去 2.資料封裝 就是在類裡面定義方...
物件導向類
類的宣告 functiona es6 class a2 生成例項 newa newa2 如何繼承 借助建構函式繼承 functionp p.prototype.say function 父類的原型物件無法被子類繼承 functionc 借助原型鏈繼承 functionp functionc c.pr...
物件導向類
類與例項 1 類的宣告 1 第一種方式 用建構函式模擬類的方式 function animal 2 第二種方式 es6 class class animal2 2 生成例項 new animal new animal2 類與繼承 如何實現繼承 1 借助建構函式實現繼承 function parent...