日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Set函数、Get函数、点语法和类方法

發布時間:2023/12/9 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Set函数、Get函数、点语法和类方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.Set函數

setter函數,對成員變量賦值。Set函數的一般寫法以對age操作為例,寫法為:

-(void)setAge:(int)newage

2. Get函數

getter函數,對成員變量取值。Get函數的一般寫法也以對age的操作為例,寫法為:

-(int)age;

3. 點運算符在OC的類對象中不能訪問成員變量,如dog.age=5,這里不是使用成員變量age,而是調用成員方法setAge,相當于給dog.age賦值時,調用方法[dog setAge:5]

NSLog(@”%d”,dog.age); 這里也不是使用成員變量age,而是調用成員方法age,使用dog.age表達式的值時,實際上就是調用成員方法age[dog age]

. ”不能調用成員變量,只是調用set函數和get函數的一種簡寫。這里不能理解為,定義了get函數和set函數就能調用成員變量,因為將這兩個函數,不以一般形式書寫時,使用dog.age時,就會報錯。

4. @property @synthesize

定義set函數和get函數時,我們會發現多個成員變量定義時,會做許多重復的工作,OC為了方便,將這種方法封裝起來,我們可以使用@property來聲明setget函數,使用@synthesize來實現set函數和get函數。同樣以Dog類的成員變量age為例。

-(void)setAge:(int)newage;

-(int)age;

這兩個函數使用@property,可以寫為 @property int age;”,這樣大大減少了重復性工作。

聲明后實現函數,一般的實現方式為:

-(void)setAge:(int)newage

{

age=newage;

}

-(int)age

{

return age;

}

同樣使用@synthesize可以簡化為“@synthesize age;

5. setget函數的名稱與變量名不同,但同時使用點語法

1 函數與變量名不同,使用@property@synthesize

@property secondnum

@synthesize secondnum=b

實現的時候關聯,聲明的時候不用管。這時,可以使用“對象.sencondnum”對b進行賦值和取值。

2 set函數和get函數名稱不對應

將“@property int d;”改為“@property (getter = d1st) int d;

@synthesize d”不變,賦值和調用時就不同了,賦值時為“對象.d=1”,取值時就為“對象.d1st”。這里只是添加了一個新名,不是代替原有的“對象.d=1”,但是[對象 setA]就不能使用了。

3 @property(setter=set2nd: ;getter=d1st) int d;

這里將gettersetter函數都增加了新名字,這里必須注意的是,set函數的名字格式必須為“setXXXX:”,一定不能忘記冒號,用逗號隔開get函數,這兩個函數不分前后。

@synthesize d;”不變。

4 @property(readonly) int d;

()里的內容稱為property的屬性,若屬性為readonly,則只聲明get函數,不聲明set函數,默認為readwrite。沒有聲明set函數@synthesize就不會實現set函數。

6. 函數前的“+”與“-

OC中常見函數名稱前面常帶有“+”和“-”,這里的加減號分別代表了不同的方法類型。

+ 代表 函數為類的函數,調用時用類名調用。

- 代表 函數為對象的函數,調用時需用對象調用。

類沒有空間,沒有成員變量的空間,類的方法不能使用對象的成員變量。

用處: 1 在沒有對象的時候,調用+函數創建一個對象。

2 單例模式。可以看為全局變量的升級版。一個類的對象為其他類的所有對象所共有。(下階段深化!!)

轉載于:https://blog.51cto.com/rongchengfei/1082143

總結

以上是生活随笔為你收集整理的Set函数、Get函数、点语法和类方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。