您好,登錄后才能下訂單哦!
一、課程回顧
1、面向對象的語言
面向對象編程:以事物為中心
面向過程編程:以事件為中心
2、類和對象
描述類:具有相同特征和行為的事物的抽象
對象是類的實例,類是對象的抽象
3、定義類
接口部分:聲明類的特征(實例變量)和行為(方法)
實現部分:實現方法
4、創(chuàng)建對象
Person * p1 = [[Person alloc] init];
alloc 類方法 只有類可以調用
作用:在堆區(qū)為對象分配存儲空間;將存儲空間清空,所有實例變量設置為0;返回對象存儲空間的首地址。
init 實例方法 只有對象可以調用
作用:為實例變量設置
p1本質:指向Person類型對象的指針
當某個對象類型的指針指向創(chuàng)建的對象時,將p代指為對象
5、對象調用方法
[p sayHi];
Person * p2 = nil;
p2不能代指為對象,是空指針
在OC中,對nil做任何操作都是無效的
二、實例變量操作
在類的外部(定義類以外的部分)調用public修飾的實例變量時,使用->
1、實例變量賦值
p->_name = @"遙星夢";
p->_age = 18;
2、讀取實例變量的值
NSLog(@name = %@, age = %d", p->_name, p->_age);
輸出:name = 遙星夢, age = 18
3、重寫init初始化
1)聲明部分-----Person.h
- (Person *)init;
- (id)init; - (instancetype)init;----通用寫法
id通用指針類型,只能指向對象類型
寫法:id Teacher * Person * 不能表示int *
2)實現部分------Person.m
- (id)init
{
_age = 18;
return self;
// self表示自己 初始化方法必須返回self
}
4、實例方法
1)聲明部分------Person.h
- (void)introduce;
2)實現部分------Person.m
- (void)introduce
{
NSLog(@"我叫%@", _name);
// 所有創(chuàng)建的Person對象,都可以調用屬于這個對象的實例方法
// 實例方法中,可以直接使用實例對象
// 哪個對象調用了實例方法,那么實例變量中的值是當前這個對象的值
}
3)調用-------main.m
[p introduce];
輸出:我叫遙星夢
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。