日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OC基础第三讲

發布時間:2023/12/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OC基础第三讲 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
OC基礎第三講

繼承、初始化方法

繼承

1.基本概念

繼承的上層—父類, 繼承的下層—子類, 子類繼承父類全部的特征和行為。

根類(NSObject): 沒有父類的類

繼承是單向的,不能相互繼承,且OC中只允許單繼承

繼承具有傳遞性

2.Super

super是編譯器指令,并非對象,而self是指針(即對象)

作用:調用從父類繼承的實例方法

子類可以重寫父類的方法(這個方法無需在子類中重復聲明),當子類重寫父類的方法后,子類會調用自己重寫后的方法,如果要調用父類的方法,則需要給super發消息[super 方法名]。

?

初始化方法

?

創建對象步驟:分配空間 -> 初始化(為新開辟的空間賦值)

?完整的初始化方法(3步):

?子類中定義了除父類中公共實例變量之外的實例變量。在自身的初始化方法中,先向super發送init消息,初始化公共實例變量,初始化成功后,在初始化自身特有變量,從而完成全部實例變量的初始化。

//? 聲明自定義初始化方法( 3個參數)(指定初始化方法)

-(id)initWithNo:(int)no withName:(NSString *)name withAge:(int)age

{

? ? //? 優先調用從父類繼承過來的初始化方法

? ? self = [super initWithName:name withAge:0];

? ? //? 判斷初始化是否成功,如果初始化成功,在初始化自身持有的實例變量

? ? if (self) {

? ? ? ? _no = no;

? ? }

? ? //? 返回對象

? ? return self;

}

初始化方法特征:’-’方法(實例方法);返回值是(id)或者(instancetype);init開頭;可以帶0~多個參數。內部實現:先執行super的始化方法,再初始化自身變量,最后返回對象 return self.

指定初始化方法:一個類含有多個初始化方法,無論執行哪個初始化方法,總有一個初始化方法被調用,這個方法就是初始化方法。一般選參數最全的初始化方法作為指定初始化方法

//? 使用實例方法創建學生類對象

Student *pStu = [[Student alloc] initWithName:@"小王" withAge:18 withNo:28

便利構造器

便利構造器是’+’方法(類方法),方法名以類名開頭,返回本類型的實例

內部實例:封裝了alloc(開辟空間)和初始化方法(init)

//? 實現方法

+(id)personWithName:(NSString *)name withAge:(int)age

{

? ? Person *p = [[Person alloc] initWithName:name withAge:age];

? ? return p;

}

//? 使用便利構造器創建對象

Person *p = [Person personWithName:@"小王" withAge:66];

?

posted on 2014-04-25 21:24 和果子 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/liuyu521/p/3690175.html

總結

以上是生活随笔為你收集整理的OC基础第三讲的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。