1.類的宣告
1-1@inte***ce開始,@end結束
1-2變數和方法不能混在一起,例項變數必須放在{}內
1-3沒有static、const的例項變數。在.m檔案中可以宣告static靜態屬性:屬於類,不屬於物件。同樣,也沒有const方法,沒有友元方法。
1-4「-」宣告的方法是protect,「+」宣告是public,如果乙個方法在.h中沒有宣告,但在.m中有定義,則只能是.m檔案中類內部使用的private方法。所有方法都不能在類的宣告中實現。
1-5所有的類都繼承自nsobject。
1-6例項變數的預設訪問許可權是@protected.
1-7方法的返回值型別和引數可以不寫,預設是id型別(相當於c++中的void*通用指標型別)。
1-8同乙個類內方法不能過載,即方法的簽名不能完全一樣。
2.類的實現
2-1和.h檔案下宣告保持簽名一致,必須有方法的實現體。如果乙個方法在.h中沒有宣告,但在.m中有定義,則只能是.m檔案中類內部使用的private方法。
3.類的例項化
3-1 objc中,所有物件都在堆區建立,不能在棧區建立物件。例如:在堆區分配記憶體,建立物件。
fraction * frac = [fraction alloc]init];
3-2 關於空物件nil。類似於c++ 中的null。
區別:nil是乙個物件,而null只是乙個值 null==0
nil呼叫人和方法都不起作用,不產生crash也不丟擲異常。
3-3 –alloc方法繼承自nsobject,子類不能過載(子類可以重寫init方法)。alloc是類方法,只能通過類名呼叫。
3-4 alloc分配記憶體後還需要使用init方法將例項變數初始化。
4.訊息
objc 中最大的特色就是訊息傳遞。
訊息的接收者一定是物件。訊息接收者的實參可以是訊息表示式。
5.物件初始化
5-1物件建立出來以後,物件的記憶體被初始化為0.
5-2 初始化方法實現(模式):
-(id)init
if(self =[super init])
return self;
5-3 初始化方法可以有多個,一般所有初始化方法都已init開頭。引數少的初始化方法可以間接呼叫初始化引數多初始化方法,實現重用。
5-4 乙個類可以多個初始化方法,但只能有乙個指定初始化方法。它一般有最多的引數,做最多工作的初始化方法。其他初始化方法可以呼叫它。
6.屬性
6-1 類的例項變數一般為保護或私有,通過物件不能訪問這些例項變數,可以通過get或set訪問。get和set命名規則:get+例項變數名(首字母大寫),set相同原則。
6-2 屬性宣告機制:
@property 型別名 屬性名 寫在.h中
@synthesize 屬性名 寫在.m中
@property int age; 預設是可讀可寫readwrite,即自動生成get和set方法。@property(readonly)intage;唯讀屬性,只生成get方法。@property(writeonly)int age;只可以寫屬性,只生成set方法。
6-3 屬性的訪問
stu.age; == [stu age];都是呼叫get方法
stu.age = 10; == [stu setage:10]; 都是呼叫set方法
7.self和super
7-1 self是方法的乙個隱藏引數,類似於c++中的this,
在.m檔案中 self是指向當前例項的指標,它的值可以改變。(self->age)
當乙個方法呼叫同類中另乙個方法時self不可以省略。
([self initwithage:20])
必須使用self指明訊息的接受者。
7-2 super是乙個編譯指示符。它只是告訴編譯器,當呼叫class的方法時,要去呼叫父類的方法,而不是本類的,但訊息接收者依然是本類,即super不改變訊息接收者。
objective c物件導向
oop object oriented programming 特徵 多型 繼承 封裝 兩部分組成 1.inte ce部分 定義類的公共介面和類的資料成員 2.implementation部分 實現這些方法的實際方法 main檔案中新增friend類 inte ce 部分 inte ce frien...
objective C物件導向理解(上)
在objc中定義乙個類需要兩個檔案.h和.m demo 在.h 檔案中 import 由於使用了nsobject,所以匯入此標頭檔案 nsobject是基類,person實現了nsobject inte ce person nsobject end.m檔案 import import person....
Objective C 01 物件導向
物件導向 object oriented,oo 是軟體開發方法 物件導向是一種對現實世界理解和抽象的方法.object oriented programming oop 物件導向程式設計 什麼叫物件導向?感覺還是很抽象的東西,舉個例子,小明想買電腦,但是他什麼都不懂,於是就打 找到懂電腦的小黃,讓他...