OC中實例變量可見度、setter、getter方法和自定義初始化方法

在對類和對象有一定了解之後,我們進一步探討實例變量的可見度等相關知識

實例變量的可見度分爲三種情況:public(共有),protected(受保護的,默認),private(私有的),具體的不同和特點如下:

wKioL1UmYdLC3ue8AAP6rVxaaFM360.jpg

具體的使用示例如下:

wKioL1UmYfPTA0OKAAKdQN1OHhM115.jpg


編程時默認的可見度是@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文件中:

wKioL1UmYhiBfq3qAACM3svmQhQ170.jpg

Person.m文件中:

wKiom1UmYN7jjnxVAADLzaAB1i0680.jpg

多參方法:

wKiom1UmYQeAmLqzAAE4TnTS-fU036.jpg



OC中的方法分爲兩種:類方法和實例方法

類方法:只能類使用,例如:+ (id) alloc 注:類方法中不能使用實例變量

實例方法:只能對象使用,例如:_(void)sayHi

wKioL1UmYnPx3MAbAAIl7Mk-r08515.jpg

類中不能出現同名方法

“ :”標識參數,不能省略。有冒號必須有參數

方法的使用

wKioL1UmYqKjKxxYAAHTO031vZs290.jpg



自定義初始化方法

h文件中:

wKiom1UmYePQ6auYAACRb_-f4pA462.jpg

m文件中:

wKioL1UmY2KRPo52AAF8lZR2c5s450.jpg


#import

導入頭文件,即:導入頭文件中的內容到當前類。

#import“”導入自定義類。#import<>導入類庫中的頭文件

功能類似C語言中的#include,但是可以避免文件被重複導入


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章