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 實現資訊封裝的基礎 類是使用者自定義型別,也稱類型別 每個類包含資料說明和一組運算元據或傳遞訊息的函式。類的例項稱為物件 結構體型別 結構體型別由數目固定的成員組成 各成員可以具有不同的資料型別 乙個結構變數在記...