面向對象特性之封裝性(set方法、get方法)


初學者:可理解為,封裝就是對成員變量(屬性)的封裝,把屬性隱藏起來,對外提供一個方法,讓外界通過一個方法設置屬性的值。即,封裝性就是隱藏實現細節,將屬性私有化,提供公有方法訪問私有屬性。
進一層:方法也是封裝。把一堆代碼封裝到一個方法里面去,隱藏實現細節。
再進一層:類也是一個封裝。把類里面所有的方法都隱藏起來,只對你暴露一些接口。
再再進一層:一個包一個框架也是一個封裝。例如,系統給我們提供了Foundation框架,我們只需知道有哪些接口,哪些方法,直接調用就可以了。
 
封裝的目的:
同set方法封裝屬性,可以過濾掉一些不符合邏輯的數據,保證了我們數據的正確性
提高了代碼的健壯性

封裝的好處:
將變化隔離
提高代碼的重用性
提高了代碼的安全性

封裝屬性:
向外部提供設置屬性的set方法
 - (void)setName: (NSString *)name;
向外部提供訪問屬性的get方法
- (NSString *)name;
在開發當中有時候只提供get方法,該屬性稱之為只讀屬性
有時候只提供set方法,該屬性就稱之為只寫屬性
 
OC有一個約定
給成員變量賦值提供一個叫做set方法的方法:
1.一定是對象方法
2.返回值一定是void
3.一定以set開頭,set后面跟上成員變量的名稱去掉下划線,並且首字母大寫
4.一定有參數,並且參數類型和成員變量類型一致,參數名稱和成員變量名稱去掉下划線相同
取成員變量的值提供一個叫做get方法的方法:
1.一定是對象方法
2.一定有返回值,並且返回值類型和成員變量類型一致
3.方法名稱和成員變量去掉下划線一致
4.一定沒有參數
 

成員變量以下划線開頭好處:
1.可以和局部變量區分開來
2.可以和方法的參數區分開來
3.只要你打下划線就可以找到成員變量
4.ios程序員都按照這個規則區寫,提高了代碼的閱讀性

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM