【OC學習-8】存取器方法?getter和setter?事實上就是賦值和返回值的兩種函數
阿新 • • 發佈:2017-06-26
trac -m main 都是 protect pro 聲明 return 安全
(2)在類的.m文件中面設置函數(方法)詳細內容。這個非常easy。由於這個函數(方法)實現的功能非常easy(返回值或者設置值的功能)
(3)在main.m裏面使用時候能夠用函數形式也能夠用點形式
所以,至於能夠使用點函數來書寫,事實上是為了方便程序猿,由於原理。著也是OC近期版本號改進的功能。
我們在聲明類的時候,有實例變量+方法(函數),這些實例變量假設默認的話都是protected類型,一般無法直接訪問。更別提賦值和調用了,所以就產生了兩種函數,getter函數就是可以返回實例變量的值,setter函數就是可以設置實例變量的值。(當然假設你把實例變量改成public的話可以直接調用,但不安全)
存取器方法(函數)就是:存——賦值setter函數。取——返回值getter函數。
(1)先在類的.h文件中面聲明這個函數(方法)。一般都有默認的格式(例如以下):返回值函數的函數名字一般都和變量同樣,如name,sid,age;設置值函數的函數名字一般都是set+變量名(首字母大寫)。如setName。setAge,setSid。
//在ASStudent.h裏面聲明的函數(方法) -(void)setName:(NSString *)aName; -(void)setAge:(int)aAge; -(void)setSid:(NSString *)aSid; -(NSString*)name; -(NSString *)sid; -(int)age;
(2)在類的.m文件中面設置函數(方法)詳細內容。這個非常easy。由於這個函數(方法)實現的功能非常easy(返回值或者設置值的功能)
//設置值就是把形參值傳遞給實例變量值 -(void)setName:(NSString *)aName{ name=aName; } -(void)setAge:(int)aAge{ age=aAge; } -(void)setSid:(NSString *)aSid;{ sid=aSid; } //返回值就是直接return這個實例變量本身 -(NSString*)name{ return name; } -(NSString *)sid{ return sid; } -(int)age{ return age; }
(3)在main.m裏面使用時候能夠用函數形式也能夠用點形式
//兩者同樣。以下那個點函數在賦值時,事實上系統還是會調用上面那個函數 [zhang setName:@"tom"]; zhang.name=@"tom"; //兩者同樣,以下那個點函數在返回值時。事實上系統還會調用上面那個函數 NSLog(@"%@,%d",[zhang name],[zhang age]); NSLog(@"%@,%d",zhang.name,zhang.age);
所以,至於能夠使用點函數來書寫,事實上是為了方便程序猿,由於原理。著也是OC近期版本號改進的功能。
【OC學習-8】存取器方法?getter和setter?事實上就是賦值和返回值的兩種函數