簡單介紹封裝
- 封裝是面向對象編程的一大特點
- 封裝可以被認為是一個保護屏障,防止該類的屬性、方法和數據結構被外部隨意訪問
- 要訪問該類的屬性、私有方法、數據結構,必須由指定的方法控制訪問
深入理解封裝
- 在設計類時,刻意地將一些屬性和方法隱藏在類的內部【私有屬性、私有方法】
- 這樣在使用此類時,將無法直接通過 實例對象.屬性名 實例對象.實例方法() 形式調用這些屬性、方法
- 而只能通過公開的方法間接操作這些隱藏的屬性和方法
類比場景
- 好比使用電腦,我們只需要學會如何使用鍵盤和鼠標就可以了,不用關心內部是怎么實現的,因為那是生產和設計人員該操心的
- 注意:封裝絕不是將類中所有的方法都隱藏起來,一定要留一些像鍵盤、鼠標這樣可供外界使用的類方法
- 修改電腦內部的設計,但我們仍然通過鍵盤、鼠標去操作電腦
封裝的好處
數據結構完整性
- 封裝機制保證了類內部數據結構的完整性
- 用戶只能通過公開的方法來訪問數據,只需要在公開的方法中加入適當的控制邏輯,即可控制用戶對類中屬性或方法的不合理操作
- 很好地避免了外部對內部數據的影響,提高了程序的可維護性,也提升了代碼數據的安全性
減少耦合,提高代碼復用性
- 良好的封裝能夠減少耦合
- 用戶使用類不需要去關心類中的具體實現代碼,通過類公開的方法即可正確訪問這個類
- 類內部的屬性、方法、數據結構可以隨意修改,而不用修改那些調用類方法的程序片段
封裝原則
- 將不需要對外提供的內容都隱藏起來
- 把屬性都隱藏,提供公共方法對其訪問
- Python 如何隱藏屬性?將屬性私有化:https://www.cnblogs.com/poloyy/p/15203106.html
