1.面向對象三大特性
- 封裝性
- 繼承性
- 多態性
2.什么是封裝
- 封裝性就是隱藏實現細節,僅對外公開接口。
3.為什么要進行封裝?
- 下面代碼存在問題
// 1成員變量是public的,也就是公開的,我們不能控制外界如何賦值, 外界有可能賦值一些垃圾數據,而我們又不能進行操作
@interface Gun : NSObject
{
@public// 公開成員變量
int _bulletCount;// 子彈數量
}
@end
// 可以利用封裝來解決這個問題
// 封裝:是指隱藏對象的屬性和實現的細節,僅對外提供公共的訪問方法
類是數據與功能的封裝,數據就是成員變量,功能就類方法或對象方法
對數據的封裝,也就是對成員變量的封裝
不封裝的缺點:當一個類把自己的成員變量暴露給外部的時候,那么該類就失去對該成員變量的管理權,別人可以任意的修改你的成員變量。
封裝就是將數據隱藏起來,只能用此類的方法才可以讀取或者設置數據,不可被外部任意修改是面向對象設計本質。這樣降低了數據被誤用的可能性 ,提高代碼的靈活性!
4.封裝的好處
-
好處
- 將變化隔離
- 提高安全性
-
原則
- 將不需要對外提供的內容都隱藏起來,把屬性都隱藏,提供公共的方法對其訪問