本系列的文章主要來自於個人在學習前鋒教育-歐陽堅老師的ios開發教程之oc語言
一定要明確乙個要從事的方向,要不然就會感到迷茫。學習ios開發,並且從事ios開發這個行業,這就是我的選擇。看到我的部落格系列文章,其中大多是關於c++、qt、linux網路程式設計、opengl、unity3d等方面。從表面上看和ios開發似乎沒有多少關聯,但是有了這些方面的學習經驗給我帶了一定的基礎。ios開發主要用oc和swift語言,而oc是從事ios開發的基礎。眾所周知,oc(objective-c)即物件導向的c,在c語言的基礎上增加了物件導向的機制和記憶體管理這一對翅膀,使得oc在做ios開發如虎添翼。
oc是一門物件導向的語言,既然是物件導向就少補了類和物件。我們知道在c++中物件導向的三大機制:繼承、封裝、多型,這在oc中也同樣具備。下面就具體說一下oc中的類和物件。
類的定義
類是由屬性和方法組成的,屬性表示類的特徵,方法表示類的動作。
類的定義格式
oc中的類定義和c++中的類定義有些不同,在oc中類的標頭檔案為***.h,而原始檔卻是以.m為字尾的檔案-***.m。
介面在標頭檔案中:
@inte***ce類名:基類名稱//
這裡不加";"號
//方法宣告
@end
//宣告結束
類名首字母需要大寫,nsobject是oc所有類的基類,介面中只包含方法的宣告,方法有類方法和例項方法。
實現在原始檔中:
@implementation類名//
方法實現
@end
類的訪問許可權
有三種訪問許可權:@public,@private,@protected。屬性預設的許可權是保護型別,方法預設的許可權是公有型別。
oc中的建構函式以initwith***開頭,主要做一些初始化工作,析構函式為dealloc,如果自己寫類沒有定義,系統會自動提供乙個預設的建構函式和析構函式。
舉個例子說明一下,如下**:
-(id) init
return
self;
}-(id)initwithname:(nsstring *)newname
-(id)initwithname:(nsstring*)newname withage:(int
) newage
-(void
)dealloc
在oc中也可以使用"obj->arrt"的形式訪問和設定屬性字段,但前提是該字段必須被宣告為公有型別。但是這種方式不建議使用。
#import@inte***ce
person:nsobject
-(void) setage:(int
)age;
-(int
)getage;
@end
@implementation
person
-(void) setage (int
)age
-(int
)getage
@end
intmain()
return0;
}
person *person = [[person alloc] init]就是person指向的物件分配了記憶體空間,並進行了初始化。也可以用person *person = [person new],oc中也支援new運算子。因為age、name欄位被宣告為public型別,所以可以使用指標呼叫的方式來設定物件的屬性。
引數標籤
-(person *)init:(int) newid:(int) newage;//沒有使用引數標籤
-(person *)initwithid:(int) newid andage:(int) newage;//
使用引數標籤
第乙個引數可以不帶標籤,從第二個引數開始可以帶標籤。現在的方法名為:initwithid:andage:,引數標籤可以提高方法名的可讀性,同時還可以用於方法的過載。
方法過載
在oc中,方法的過載不像c++那樣可以通過,引數型別,引數個數進行區分了。oc中不是嚴格的函式過載。
//方法名相同並且引數個數相同但引數型別不同,在oc中構不成方法過載
-(int) dosth:(int
) x;
-(int) dosth:(float
) x;
-(int) dosth:(int) x:(int
) y;
-(int) dosth:(float) x:(float
) y;
//用引數標籤可以構成方法過載
-(int) dosth:(int) x:(int
) y;
-(int) dosth:(float) x andy:(float) y;
OC基礎 類和物件
1.oc1 oc是物件導向 關注的是解決問題需要哪些物件。2 和c程式一樣,oc也需要通過編譯和鏈結兩個步驟。終端指令 以main.m為例 編譯 cc c main.m 執行 a.out 3 關鍵字以 開頭,字串以 開頭,其他基本語法 4 和c語言一樣,oc程式的入口依然是main函式。5 nslo...
OC基礎 類和物件03
類的定義分為兩個部分.類的宣告 inte ce 類名 nsobject 方法的宣告 方法表示類的功能.end 類的實現 implementation類名 方法的實現 end 類的注意點 a.類必須要有宣告和實現 b.類名用你描述的事物的名稱來命名 類名的每1個單詞的首字母必須要以大寫開頭.c.基本上...
OC開發日記02 類和物件
面向過程的語言就是分析出解決問題所需要的步驟,然後用函式將這些步驟一步一步的實現,使用的時候乙個乙個一次呼叫就可以了。物件導向的語言時把構成問題的事務分解成各個物件,然後協調各個物件之間的聯絡和通訊,建立物件的目的不是為了完成乙個步驟,而是為了描述某個事物在整個解決問題的步驟中的行為。而oc作為乙個...