在對類和對象有一定了解之後,我們進一步探討實例變量的可見度等相關知識
實例變量的可見度分爲三種情況:public(共有),protected(受保護的,默認),private(私有的),具體的不同和特點如下:
具體的使用示例如下:
編程時默認的可見度是@protectde,爲什麼不使用@public呢?
因爲OC是面向對象編程,使用@public關鍵字,暴漏了類內部的細節,從而不符合面嚮對象語言的三大特性之一——封裝
實例變量經過@protectde修飾之後,我們就不能在該類和其子類外操作,例如mian.m文件。那麼我們如何才能在mian.m文件中設置person的_name,讀取person的_name。
這就需要我們去添加兩個方法即setter和getter方法
在OC裏,爲實例變量賦值的方法成爲setter(設置器)
讀取實例變量值的方法稱爲getter(訪問器)
賦值(setter):通過方法傳入參數,在類的內部實現實例變量的賦值
取值(getter):通過方法獲取實例變量的值
OC裏規定了setter和getter的書寫格式
如果一個實例變量是int age;或者int_age;
setter的書寫格式如下: - (void)setAge:(int)age;即set + 首字母大寫的實例變量名(忽略下劃線)
getter的書寫格式如下: - (int)getAge;即返回值類型與變量類型一致,方法名與實例變量名相同(忽略下劃線)
具體示例如下:
Person.h文件中:
Person.m文件中:
多參方法:
OC中的方法分爲兩種:類方法和實例方法
類方法:只能類使用,例如:+ (id) alloc 注:類方法中不能使用實例變量
實例方法:只能對象使用,例如:_(void)sayHi
類中不能出現同名方法
“ :”標識參數,不能省略。有冒號必須有參數
方法的使用
自定義初始化方法
h文件中:
m文件中:
#import
導入頭文件,即:導入頭文件中的內容到當前類。
#import“”導入自定義類。#import<>導入類庫中的頭文件
功能類似C語言中的#include,但是可以避免文件被重複導入