成員變量羔砾、實(shí)例變量技竟、屬性變量的聯(lián)系
@interface MyViewController :UIViewControlle
{
UIButton *yourButton;
int count;
id data蝶怔;
}
@property (nonatomic, strong) UIButton *myButton;
@end
? 在{?? } 中所聲明的變量都為成員變量俗壹。 所以yourButton恰梢、count宾符、data都是成員變量酿秸。既然如此,實(shí)例變量又是什么意思呢魏烫?
實(shí)例變量本質(zhì)上就是成員變量辣苏,只是實(shí)例是針對(duì)類而言,實(shí)例是指類的聲明哄褒。{?? }中的yourButton就是實(shí)例變量稀蟋。id 是OC特有的類,本質(zhì)上講id等同于(void *)呐赡。所以id data屬于實(shí)例變量退客。
成員變量用于類內(nèi)部,無需與外界接觸的變量链嘀。因?yàn)槌蓡T變量不會(huì)生成set萌狂、get方法,所以外界無法與成員變量接觸怀泊。根據(jù)成員變量的私有性茫藏,為了方便訪問,所以就有了屬性變量霹琼。屬性變量的好處就是允許讓其他對(duì)象訪問到該變量(因?yàn)閷傩詣?chuàng)建過程中自動(dòng)產(chǎn)生了set 和get方法)务傲。當(dāng)然凉当,你可以設(shè)置只讀或者可寫等,設(shè)置方法也可自定義售葡。所以看杭,屬性變量是用于與其他對(duì)象交互的變量。
綜上所述可知:成員變量是定義在{}號(hào)中的變量天通,如果變量的數(shù)據(jù)類型是一個(gè)類則稱這個(gè)變量為實(shí)例變量泊窘。因?yàn)閷?shí)例變量是成員變量的一種特殊情況,所以實(shí)例變量也是類內(nèi)部使用的像寒,無需與外部接觸的變量烘豹,這個(gè)也就是所謂的類私有變量。而屬性變量是用于與其他對(duì)象交互的變量诺祸。
但是携悯,現(xiàn)在大家似乎都不怎么喜歡用成員變量來定義類的變量,都喜歡用屬性變量來定義類的變量筷笨。把需要與外部接觸的變量定義在.h文件中憔鬼,只在本類中使用的變量定義在.m文件中。