OC學習筆記 OC中的類

2021-07-03 20:39:09 字數 3133 閱讀 7711

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.物件的建立和使用

要建立乙個類的物件,即要做3件事:物件的宣告、分配記憶體空間、物件的初始化

宣告

@inte***ce student : nsobject

方法名:

-(void)setage:(int)age;

-(int)getage;

-(void)sayhi;

實現

#import "student.h"

@implementation farmer

-(void)setage:(int)age

-(int)getage

-(void)sayhi

呼叫:#import "student.h"

student *s=[[student alloc

]init

]; s.name=@"tt";

[s sayhi];

屬性:@property(non atomic,retain)nsstring *name;  //setter getter方法

@synthesize name = _name;

注意:

@property()裡邊的屬性

訪問控制: readwrite 

readonly

記憶體管理:assign 基本  

retain 物件  copy 實現nscopying

執行緒安全:atomic  

nonatomic 非原子性

物件初始化三個方法

指定初始化賦值:

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

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

實現:-(id)initwithname:(nsstring *)name

return self;}

-(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

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

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

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

便利構造器:

宣告:

-(id)initwithname:(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;

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

return self;}

+(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];

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

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

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

單例模式:

宣告:

+(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;

注意:單例物件的類只能有乙個例項

OC學習筆記之OC類你好

之前,小橋的mac系統是裝在虛擬機器中的,虛擬機器占用資源太大,想裝在實機上,所以這個星期都在搗鼓,終於完工!一 關於類 高階語言中似乎都有類的概念,c 中是從c的結構體而來。類是物件導向語言中的核心部分,物件導向的三大特性在類中都有具體表現!比如在c 類中,有封裝,有繼承,多型性有過載!相信oc中...

OC學習筆記

1 什麼時候用類方法?什麼時候用例項方法?類方法 應該是對整個模型層面的操作,例項方法 是對某單個模型的操作。又如有乙個使用者類,請求附近的使用者,應該寫成類方法,更新當前使用者的資料,應該寫成例項方法。工具類,基本不需要訪問任何成員變數的時候用類方法。主要全域性層面使用,很方便。需要單獨建立某個物...

O C學習筆記,類和物件

通過一段 的編寫和實現來簡單說明oc程式的建立過程。部分筆記結合在 的注釋中。h檔案存放類,函式宣告。import inte ce dog nsobject 凡是以init x開頭的都是建構函式 id init 函式名為init 不帶引數 id initwithid int newid 函式名為 i...