您好,登錄后才能下訂單哦!
實例變量的可見度---能不能在外界訪問。。
@protected (受保護的,默認的)---實例變量只能在該類和其子類內操作
@public =--------實例變量可以在類的外部和內部操作
@private----------實例對象只能在該類內訪問
內部是只相應@implementation 和@end 之間 。。。。
為什么不能使用@public
使用@public關鍵字,暴露類類內部的細節。
不符合面向對象語言的三大特性之一--封裝
面向對象三大特性:封裝,繼承,多態;
類中不能出現同名的方法
- (void)setSex:(NSString *)sex;
int double flout用作參數不用加*(NSInteger NSUInteger CGFloat);
receiver message] 消息機制,,
繼承是單向的,不能相互繼承。
繼承是具有傳遞性的 ,,,
子類能繼承父類全部的特征和行為,
繼承的特點
OC中只允許單繼承
沒有父類單類,稱為根類,OC中單根類是NSObject(祖宗)
繼承單內容:所有單實例變量和方法
如果子類不滿意父類的方法的實現,可以重寫父類的方法
self 自身的對象
super 不是父類的對象,而是調用父類的方法,
是編譯 器指令,并非對象, 是給super法消息,可以執行父類中實現的方法;
子類可以重寫父類方法,即:子類即有自己的實現,又又父類的實現,如果想從父類調用方法,需要用到super發送消息;
初始化過程
執行父類中到初始化方法(向上遞歸到NSObject類中的初始化方法)
從根類NSObject開始執行初始化方法
判斷父類中初始化是否成功,即self是否存在
完成對象的初始化設置,返回對象
初始化子類實例變量
制定初始化
通常把參數最全的初始化方法作為制定初始化方法
制定初始化方法負責向super發送初始化消息
每個類都會有指定的初始化方法
如果每一個類只有一個初始化方法,那它也是指定初始化方法
初始化方法特征
初始化發方是“-”方法
id或者instancetype類型的返回值
以init開頭
可以帶0到多個參數
內部實現:先執行super到初始化方法,在初始化自身變量,return self;
便利構造器
便利構造器是“+“方法,返回本類型 的實例,方法名以類名開頭
可以有0到多個參數
內部實現:封裝類alloc和初始化方法,使用起來更加簡潔。
#import
導入頭文件,即:導入文件中的內容到當前類
#import “ ”導入自定義類,#import < >導入類庫中的頭文件
功能類似C語言中的#include,但是可以避免頭文件被重復導入
容易出現循環導入問題
@class
告訴編譯器@class后的字符串作為類名使用,并未導入類的接口內容
有效避免嵌套循環導入
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。