1.面向?qū)ο笕筇匦?/h3>
- 封裝性
- 繼承性
- 多態(tài)性
2.什么是封裝
- 封裝性就是隱藏實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開接口萨西。
3.為什么要進(jìn)行封裝?
- 下面代碼存在問題
// 1成員變量是public的,也就是公開的,我們不能控制外界如何賦值, 外界有可能賦值一些垃圾數(shù)據(jù)妄壶,而我們又不能進(jìn)行操作
@interface Gun : NSObject
{
@public// 公開成員變量
int _bulletCount;// 子彈數(shù)量
}
@end
// 可以利用封裝來解決這個(gè)問題
// 封裝:是指隱藏對(duì)象的屬性和實(shí)現(xiàn)的細(xì)節(jié),僅對(duì)外提供公共的訪問方法
類是數(shù)據(jù)與功能的封裝霞扬,數(shù)據(jù)就是成員變量佑笋,功能就類方法或?qū)ο蠓椒?/p>
對(duì)數(shù)據(jù)的封裝翼闹,也就是對(duì)成員變量的封裝
不封裝的缺點(diǎn):當(dāng)一個(gè)類把自己的成員變量暴露給外部的時(shí)候,那么該類就失去對(duì)該成員變量的管理權(quán),別人可以任意的修改你的成員變量蒋纬。
封裝就是將數(shù)據(jù)隱藏起來,只能用此類的方法才可以讀取或者設(shè)置數(shù)據(jù),不可被外部任意修改是面向?qū)ο笤O(shè)計(jì)本質(zhì)猎荠。這樣降低了數(shù)據(jù)被誤用的可能性 ,提高代碼的靈活性!
4.封裝的好處
-
好處
- 將變化隔離
- 提高安全性
-
原則
- 將不需要對(duì)外提供的內(nèi)容都隱藏起來,把屬性都隱藏,提供公共的方法對(duì)其訪問
// 1成員變量是public的,也就是公開的,我們不能控制外界如何賦值, 外界有可能賦值一些垃圾數(shù)據(jù)妄壶,而我們又不能進(jìn)行操作
@interface Gun : NSObject
{
@public// 公開成員變量
int _bulletCount;// 子彈數(shù)量
}
@end
// 可以利用封裝來解決這個(gè)問題
// 封裝:是指隱藏對(duì)象的屬性和實(shí)現(xiàn)的細(xì)節(jié),僅對(duì)外提供公共的訪問方法
類是數(shù)據(jù)與功能的封裝霞扬,數(shù)據(jù)就是成員變量佑笋,功能就類方法或?qū)ο蠓椒?/p>
對(duì)數(shù)據(jù)的封裝翼闹,也就是對(duì)成員變量的封裝
不封裝的缺點(diǎn):當(dāng)一個(gè)類把自己的成員變量暴露給外部的時(shí)候,那么該類就失去對(duì)該成員變量的管理權(quán),別人可以任意的修改你的成員變量蒋纬。
封裝就是將數(shù)據(jù)隱藏起來,只能用此類的方法才可以讀取或者設(shè)置數(shù)據(jù),不可被外部任意修改是面向?qū)ο笤O(shè)計(jì)本質(zhì)猎荠。這樣降低了數(shù)據(jù)被誤用的可能性 ,提高代碼的靈活性!
好處
- 將變化隔離
- 提高安全性
原則
- 將不需要對(duì)外提供的內(nèi)容都隱藏起來,把屬性都隱藏,提供公共的方法對(duì)其訪問