面向物件-類和物件
面向過程和麵向物件
面向過程就是分析出解決問題所需要的步驟,然後用函式這些步驟一步一步實現,使用的時候一個一個依次呼叫就可以。面向物件是把構成事物分解成各個物件,建立物件的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。
面向過程的特點:
將複雜的問題流程化,進而簡單化,但是牽一髮而動全身,擴充套件性差,可維護性也很差。對擴充套件性要求不高的地方可以使用,比如安裝的使用
面向物件的特點:
擴充套件性強,可維護性強,適用於對擴充套件要求比較高的地方,比如我們生活中的微信,qq等。
面向物件
一、什麼是物件
1、在程式中:物件就是盛放資料和函式的容器
2、在現實生活中,一切皆物件,物件是特徵和技能的結合體。
二、什麼是類
類是一系列物件相似的特徵與相似的技能的結合體,站在不同的里長,劃分的分類不一定是一樣的。
三、類和物件的關係
1、在程式中必須先定義類,然後呼叫類產生物件
2、在現實生活中,是先有物件再有類的
四、定義類
1、定義函式:
2、定義類
在定義類後發生的事情:
(1)立即執行類體程式碼
(2)產生一個類的名稱空間,把類體裡面執行的名字都扔到名稱空間中去(大字典)
(2)把類的名字繫結給__dict__。通過類名.__dict__可以檢視類的名稱空間。
3、給物件定製自己獨有的屬性
4、屬性的查詢順序
(1)類屬性:在類中寫的屬性就稱為類屬性
1)查: 類名.屬性名
2)增:類名.屬性名=‘xxx’(此屬性名在類名稱空間中不存在)
3)改:類名.屬性名=‘xxx’(此屬性名在類名稱空間中存在)
4)刪:del 類名.屬性名
(2)物件屬性:在物件自己的名稱空間中的屬性就是物件屬性
當物件呼叫屬性的時候,先在自己的名稱空間中查詢,如果找不到就去類名稱空間查詢。當類調屬性的時候,只能在類名稱空間查詢。
1)查: 物件名.屬性名
2)增:物件名.屬性名=‘xxx’(此屬性名在類名稱空間中不存在)
3)改:物件名.屬性名=‘xxx’(此屬性名在類名稱空間中存在)
4)刪:del 物件名.屬性名
5、方法的呼叫
類呼叫的方法:
類名.方法名(引數1,引數2)需要幾個引數傳幾個引數
物件呼叫的方法:
類名.方法名(引數1,引數2)會把自己當做引數傳遞給函式