OC面向對象—封裝安全
1、面向對象和封裝測試
面向對象的三大特性:封裝(成員變量)、繼承和多態設計
在OC語言中,使用@interface和@implementation來處理類。3d
@interface就好像暴露在外面的時鐘表面,像外界提供展現以及接口。@implementation就好像隱藏在時鐘內部的構造實現,把具體的實現封裝了起來。指針
2、Set方法對象
在開發過程當中,考慮到安全性要求,咱們通常不在成員變量名前面使用@public、@protected等關鍵字修飾,而是使用Set方法來爲對象提供成員變量的值。在set方法的內部也能夠對一些不合理的賦值進行篩選過濾。blog
Set方法的做用:爲外界提供一個設置成員變量值的方法繼承
命名規範:接口
(1)方法名必須以set開頭開發
(2)Set後面跟上成員變量的名稱,首字母大寫
(3)返回值必定是void
(4)必定要接收一個參數,並且參數類型須要和成員變量的類型一致
(5)形參名不能喝成員變量名同樣(蘋果官方推薦成員變量名前加_以示區分)
Set方法的好處:
(1)不讓數據暴露在外,保證了數據的安全性
(2)對設置的數據進行過濾
Set方法使用示例:
Set方法的聲明:
Set方法的實現:
測試程序:
3、Get方法
Get方法的做用:爲調用者返回對象內部的成員變量
命名規範:
(1)必定有返回值,返回值的類型和成員變量的類型一致
(2)方法名和成員變量名同樣
(3)不須要接收任何參數
Get方法使用示例:
Get方法的聲明:
Get方法的實現:
測試程序:
注意1:在實際的開發中,不必定set和get方法都會提供,若是內部的成員變量好比學生的學號這樣的數據只容許外界讀取,可是不容許修改的狀況,則一般只提供get方法而不提供set方法。
注意2:成員變量名的命名如下劃線開頭,get方法名不須要帶下劃線,使用下劃線開頭有兩個好處:(1)與get方法的方法名區分開來;(2)能夠喝一些其餘的局部變量區分開來,下劃線開頭的變量,一般都是類的成員變量。
4、Self關鍵字
Self是一個指針,誰調用了當前方法,self就指向誰
【出如今對象方法中,就表明着當前對象,出如今類方法中,就表明着當前類】
Self的用途:
(1)能夠利用self->成員變量名訪問當前對象內部的成員變量(僅在對象方法中)
(2)[self 方法名];能夠調用其餘的對象方法或者是類方法
5、練習
要求:設計一個成績類
實現:
測試程序: