類型成員
1. 數(shù)據(jù)成員:實(shí)例變量(對(duì)內(nèi))、屬性(對(duì)外)
2. 函數(shù)成員:方法等
3. 屬性:例如,@property int age;
(實(shí)例變量 例如,int age;)
生成屬性時(shí):1. 生成一個(gè)實(shí)例變量 2. 生成實(shí)例方法getter 3. 生成實(shí)例方法setter
書寫表達(dá)式的時(shí)候,做賦值會(huì)被編譯器翻譯成setter訪問器方法菇爪,做讀值會(huì)被翻譯成getter訪問器方法
推薦使用點(diǎn)表達(dá)式
注:類外只能訪問屬性,不能訪問實(shí)例變量
//
除了setter柒昏,getter以外還可以自定義訪問器方法
可以更改屬性的名稱
更改屬性背后的實(shí)例變量的名字:@synethesize a=b (把a(bǔ)改成b)
//
可以自定義靜態(tài)變量 static int _max = 100;
為靜態(tài)變量提供訪問器方法
4. 實(shí)例變量
只能在類內(nèi)訪問
同時(shí)自定義setter getter兩個(gè)方法或((readonly)只讀屬性:只有g(shù)etter)編譯器不會(huì)自定義實(shí)例變量
5.使用條件
類外一律使用屬性
類內(nèi)優(yōu)先使用self.訪問
特例:初始化器凳宙,析構(gòu)器,自定義訪問器方法三種情況需要訪問實(shí)例變量
6. 生存周期
實(shí)例變量:存儲(chǔ)在堆上职祷,對(duì)于值類型直接嵌入堆氏涩,跟隨堆的釋放而釋放;對(duì)于引用類型有梆,只有當(dāng)棧上的指針和堆上作為屬性的指針都釋放時(shí)才會(huì)釋放
7. 屬性的描述特性
(1)默認(rèn)為讀寫屬性是尖,但加上(readonly)變?yōu)橹蛔x屬性,就不可以再賦值泥耀。
(2)多線程特性:默認(rèn)為原子性(要么徹底執(zhí)行饺汹,要么徹底不執(zhí)行)
(3)內(nèi)存管理特性:
A. (strong)強(qiáng)引用屬性與(weak)弱引用屬性
默認(rèn)為(strong)強(qiáng)引用,但某些情況下可能出現(xiàn)循環(huán)引用(雙方互相指認(rèn))的問題痰催,使得兩個(gè)對(duì)象不能被釋放兜辞,ARC產(chǎn)生內(nèi)存泄漏迎瞧。因此,加入(weak)弱引用后逸吵,ARC不做內(nèi)存計(jì)數(shù)凶硅,可以阻止循環(huán)引用,使得兩個(gè)對(duì)象都能夠被成功釋放扫皱。
B. (copy)拷貝屬性
賦值后指向了同一個(gè)字符串足绅,會(huì)出現(xiàn)連帶更改問題。但加入(copy)之后啸罢,復(fù)制后就會(huì)拷貝一份新的內(nèi)存编检,讓指針指向拷貝出的新內(nèi)存此時(shí)再更改之前的字符串就不會(huì)對(duì)新拷貝的字符串產(chǎn)生影響胎食。