ios開發之OC基礎 類和物件

2021-09-08 20:50:27 字數 2527 閱讀 8709

本系列的文章主要來自於個人在學習前鋒教育-歐陽堅老師的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作為乙個...