欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Objective-C之成魔之路【8-訪問成員變量和屬性】

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,萊西企業(yè)網(wǎng)站建設,萊西品牌網(wǎng)站建設,網(wǎng)站定制,萊西網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,萊西網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

郝萌主傾心貢獻,尊重作者的勞動成果,請勿轉(zhuǎn)載。

如果文章對您有所幫助,歡迎給作者捐贈,支持郝萌主,捐贈數(shù)額隨意,重在心意^_^ 

我要捐贈: 點擊捐贈

Cocos2d-X×××:點我傳送


訪問成員變量

從面向?qū)ο蟮姆庋b角度考慮問題, 要想訪問類中的成員變量, 是要通過方法訪問的, 
成員變量前面要有作用域限定符(protected, public, private) , 
這些存取權限修飾符我們將在后面介紹。 

成員變量的訪問, 是通過讀取方法(getter) 和設定方法(setter)。

訪問成員屬性:

可以使用點運算符.,或發(fā)送消息[]


以上一節(jié)中的音樂類為例子:
Song.h文件
@interface Song : NSObject {
NSString *title;
NSString *artist;
long int duration;
}
//操作方法
- (void)start;
- (void)stop;
- (void)seek:(long int)time;
//訪問成員變量方法
- (NSString *)title; 
- (void) setTitle:(NSString *) newTitle;
- (NSString *)artist; 
- (void) setArtist:(NSString *) newArtist;
- (long int)duration; 
- (void) setDuration:(long int) newDuration;
@end

Song.m文件
@implementation Song
- (void)start {
//開始播放
}
- (void)stop {
//停止播放
}
- (void)seek:(long int)time {
//跳過時間
}
//訪問成員變量方法
- (NSString *)title {
return title;
}
- (void) setTitle:(NSString *) newTitle {
title = newTitle;
}
- (NSString *)artist {
return artist;
}
- (void) setArtist:(NSString *) newArtist {
artist = newArtist;
}
- (long int)duration {
return duration;
}
- (void) setDuration:(long int) newDuration {
duration = newDuration;
}
@end

小結(jié)
采用了封裝之后就可以通過存取方法訪問屬性, 
例如[mySong title] 是取得title成員變量內(nèi)容。 
如果不考慮封裝的問題, 單從技術上講Objective-C, 可以直接通過對象訪問成員變量的, 
訪問操作符是“->” , 
例如:
mySong->title, 也可以取得title成員變量的內(nèi)容。

需要指出的是,也可以對自定義的方法使用點運算符,不僅僅是使用在synthesize上(即屬性)。

注意:

點運算符和發(fā)消息都是可以的,但是,點運算符通常使用在屬性上,用于設置或取得實例變量的值。

方法在Apple的文檔中被標記為任務(Task),任務通常不是由點運算符執(zhí)行的,

而是使用傳統(tǒng)的方括號形式的消息表達式作為首選的語法。

另外,使用合成(synthesize)的存取方法,屬性名稱的前面不要以new、alloc、copy和init這些此開頭。

這與編譯器的一些假定有關,因為編譯器會合成相應的方法。



屬性
對于成員變量的訪問, 要通過讀取方法(getter) 和設定方法(setter) 。 
在實現(xiàn)部分也要實現(xiàn)這些讀取方法和設定方法, 
為了簡化這些瑣碎編碼Objective-C2.0提出屬性的概念, 
使用 @property關鍵字在接口部分定義屬性, 
在實現(xiàn)部分使用 @synthesize關鍵字在組裝和合成這些屬性。

這種可自動生成設值方法和取值方法(統(tǒng)稱為存取方法)。

具體步驟如下:

1)在接口部分中使用@property指令標識屬性。

@interface Fraction : NSObject

@property int numerator, denominator;

@end

2)在實現(xiàn)部分使用@synthesize指令即可。

@inplementation Fraction

@synthesize numerator, denominator;

@end


再次實現(xiàn)頭文件如下:
@interface Song : NSObject {
NSString *title;
NSString *artist;
long int duration;
}
//操作方法
- (void)start;
- (void)stop;
- (void)seek:(long int)time;
//訪問成員變量方法
@property(copy,readwrite) NSString *title;
@property(nonatomic,retain) NSString *artist;
@property(readonly) long int duration;
@end

代碼說明:
聲明property的語法為: @property (參數(shù)) 類型 名字; , 
這里的“參數(shù)” 主要分為3大類: 

文章名稱:Objective-C之成魔之路【8-訪問成員變量和屬性】
網(wǎng)頁URL:http://www.chinadenli.net/article22/gpdgcc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗軟件開發(fā)電子商務做網(wǎng)站企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)