1 類與物件之objective c

2021-06-08 16:01:44 字數 3152 閱讀 2116

1.objc跟

c的區別與聯絡

首先objc是乙個物件導向的語言(封裝、繼承、多型)objc相當於c的乙個超集即objc允許使用任何c語言**但增加了許多c沒有的特點bigger easier  

2.objc中的類與物件

類由介面( xx.h    @inte***ce

)和實現(xx.m  @implementation

)兩部分構成

xx.h中宣告類中的例項變數和功能

xx.m中實現.h中的功能

注意:命名規則

類名首字母大寫  student  方法名首字母小寫(駝峰)-(

void

)sayhi

-  例項方法     +  類方法 3.

類的建立和使用 1)

宣告:在.h檔案中

#import

@inte***ce student : nsobject

//nsobject

父類名student類名

- (void)setage:(int)age;

//宣告方法

- (int)getage;

- (void)sayhi;

@end

2)實現:在.m檔案中

#import"student.h"

//要包含

.h檔案

@implementationstudent

-(void)setage:(int)age //

方法的實現

-(int)getage

-(void

)sayhi

@end 3)

呼叫:在別的類中

#import"student.h"

student *s=[[student alloc]init]; //alloc

分配記憶體空間

init

初始化

s.name=

@"tt"

;   

//只有用了@property @synthesize    s.name才能用

俗稱點語法 self.name

[s sayhi];

// 不然只能通過例項方法訪問例項變數(因為預設@protected)如果是public可以用 s->name訪問(s本質上是指標)

屬性:@property(non atomic,retain)nsstring *name;

//相當於宣告了

setter getter方法

@synthesize

name = _name;        //在.m檔案中

相當於實現了setter getter方法  _name相當於在.h檔案中宣告了乙個例項變數只是沒看到

注意:@property

()裡邊的屬性

訪問控制: readwrite(預設方式)      readonly(就沒有setter方法)

記憶體管理:assign 用於基本型別       retain用語物件   copy需要實現nscoping

執行緒安全:atomic(預設)     nonatomic非原子性(一般用非原子性)

4.初始化方法 1)

指定初始化方法:例項方法

宣告:-(id)initwithname:(nsstring *)name;

實現:

-(id)initwithname:(nsstring *)name

return

self;}2)

一般初始化方法:例項方法

宣告:-(id)initwithname:(nsstring *)name andage:(int)age and***:(nsstring *)*** andtalent:(nsstring *)talent andmate:(id)mate;

實現:-(id)initwithname:(nsstring *)name andage:(int)age and***:(nsstring *)*** andtalent:(nsstring *)talent andmate:(id)mate

return

self;

}呼叫:

rider *r=[[rider alloc]initwithname:@"rider"

andage:25 and***:@"m"

andtalent:@"hp 30,mp 0,sp 30"

andmate:nil];

注意:

通常以init開頭

返回值為id

乙個類只有乙個指定初始化方法

指定的初始化方法是必須執行的

內部實現會呼叫到父類的初始化方法

3)便利構造器:類方法

宣告:+(id)machinewithname:(nsstring *)name andage:(int)age and***:(nsstring *)*** andtalent:(nsstring *)talent andmate:(id)mate;

實現:

+(id)machinewithname:(nsstring *)name andage:(int)age and***:(nsstring *)*** andtalent:(nsstring *)talent andmate:(id)mate

呼叫:

machine *mac=[machine machinewithname:@"machine"

andage:5 and***:@"?"

andtalent:@"hp 10,mp 0,pw 100"

andmate:nil];

注意:

便利構造器方法以類名開頭

類方法內部不能用例項變數

類方法只能以類(名)來呼叫

4)單例模式:

宣告:+(king *)defaultking;

實現:

+(king *)defaultking

return k;

}呼叫:

king *k=[king defaultking];

k.name=@"king";

k.age=100;

k.***=@"m";

k.talent=@"ph 10,mp 10";

k.mate=nil;

注意:

單例物件的類只能有乙個例項再次呼叫得到本來的記憶體位址

1 類與物件之objective c

1.objc跟c的區別與聯絡 首先objc是乙個物件導向的語言 封裝 繼承 多型 objc相當於c的乙個超集即objc允許使用任何c語言 但增加了許多c沒有的特點bigger easier 2.objc中的類與物件 類由介面 xx.h inte ce 和實現 xx.m implementation ...

類與物件(1)

類與物件 1 主函式 public class text 這裡定義乙個人的類 class person public void setage int age 建構函式做初始化 public person 當沒有建構函式時,計算機會預設乙個無引數建構函式 當程式設計師寫了乙個有引數的建構函式,系統就不...

類與物件1

開發工具與關鍵技術 vs2015與 c 類 class 是物件導向程式設計設計 oop 實現資訊封裝的基礎 類是使用者自定義型別,也稱類型別 每個類包含資料說明和一組運算元據或傳遞訊息的函式。類的例項稱為物件 結構體型別 結構體型別由數目固定的成員組成 各成員可以具有不同的資料型別 乙個結構變數在記...