都是一種解決問題的思路(思想)
面向過程
在解決問題的時候,關注的是解決問題的每乙個的過程(步驟)
物件導向
在解決問題的時候,關注的是解決問題所需要的物件
舉個例子:做好飯之後洗碗
物件導向
物件導向和面向過程都是解決問題的一種方式(思想) 物件導向本身是對面向過程的封裝.
1> 面向過程程式設計最重要的是什麼?
2> 物件導向程式設計最重要的什麼?
3> 如何從面向過程程式設計的思想,過渡到物件導向程式設計?
一樣的,列舉出乙個任務的具體實現步驟
試圖分離這些實現步驟中的功能**塊
將這些功能**塊,劃分到某乙個物件中
根據這個物件以及對應的行為,抽象出對應的類 設計類
類和物件的儲存方式、關係
定義乙個類名為money的類:
物件屬性儲存方式
類屬性儲存方式
類屬性訪問方式
1)通過 類名.類屬性 訪問類屬性
2)通過 物件名.類屬性 訪問類屬性
為什麼可以通過 物件 訪問到類屬性?
答: 和python物件的屬性查詢機制有關
限制物件屬性
class
money
(object):
# 通過設定類屬性__slots__來限制物件的屬性
# __slots__這個屬性是乙個列表,列表中的元素,即為通過這個類建立出的物件可以新增的物件屬性
# 如果這個類例項出的物件,新增了非列表之內的屬性,則會報錯
__slots__ =
['name'
,'age'
]p1 = money(
)# p1 這個物件只可以新增 age和 name這兩個屬性
p1.age =
18p1.name =
'as'
print
(p1.age)
print
(p1.name)
# 如果這個類例項出的物件,新增了非列表之內的屬性,則會報錯
p1.num =
222print
(p1.num)
輸出結果:
18as
# 錯誤資訊
traceback (most recent call last)
: file "f:/pycharmprojects/code/限制物件的屬性.py"
, line 19,in
p1.num =
222attributeerror:
'money'
object has no attribute 'num'
物件和類在jvm記憶體中的儲存機制
物件和類在jvm記憶體中的儲存機制 引言 為什麼要有物件導向?a.可以用類組織一批不同型別的資料 b.把現實世界的物和事轉換到計算中 現實世界的物件 計算機中的類 計算機記憶體中的物件 要實現物件導向的手段和途徑,關鍵是類 類 就是乙個名字 就是乙個模型 就是乙個資料結構 就是一種資料型別 用類可以...
儲存類,鏈結和記憶體管理
一,儲存類 不同的儲存類提供了變數的作用域,鏈結以及儲存時期的不同組合。儲存時期,作用域,鏈結 儲存時期 變數在記憶體中保留的時間。函式原型作用域從變數定義處一直到原型宣告的末尾。這說明編譯器在處理乙個函式的引數時,它所關心的只是該引數的型別。乙個在所有函式之外定義的變數具有檔案作用域。二,鏈結 關...
儲存類 鏈結和記憶體管理
作用域 鏈結乙個 變數具有下列鏈結之一 外部鏈結 內部鏈結或空鏈結。具有 塊作用域或者函式原型作用域的變數有空鏈結,意味著它們是由其定義所在的 塊或者函式原型所私有的。具有檔案作用域的變數可能有內部或者外部鏈結。乙個具有外部鏈結的變數可以在乙個多檔案程式的任何地方使用。乙個具有內部鏈結的變數可以在乙...