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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Objective c类的初始化

發布時間:2024/4/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Objective c类的初始化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Objective c中實現類的初始化要先重載父類的init方法:

1.首先調用[super init]使用父類的方法進行初始化。將對象賦給self

2.假設self不為nil即父類初始化成功,接著進行本類的初始化

3.返回self給調用者

@implementation Test -(id)init {if(self = [super init]){//本類的初始化代碼//.......... }return self;} @end
————————————————————————————————————————————————————————————————————————————

虛方法

1.調用時不看指針看對象。稱為虛方法

2.OC中全部的方法都是虛方法

3.父類的指針能夠指向子類對象


有兩個類 card1.h @interface Card1 : NSObject {int money; } @property (nonatomic,assign) int money;-(void)printAccount;card2.h @interface Card2 : Card1- (void)printAccount; @end在main.m中Card2 *card2=[[Card2 alloc] init]; card2.money=1000; Card1 *card1=card2; [card1 printAccount];

//父類指針指向子類對象,實際上仍然時調用子類card2中的打印方法,由于card1指針指向card2對象


這一點與C++里面也是非常類似的,OC中全部的對象都是通過指針來訪問的。這些指針對象擁有編譯時類型和執行時類型。

編譯時類型是靜態類型,在編譯階段編譯器僅僅是做簡單地類型檢查,宏替換,導入頭文件等動作,與聲明它時候的定義相關;執行時類型是動態類型。與它實際所指向的實例變量的類型有關,程序執行時才知道的類型。

編譯器在編譯階段時會進行語法檢查,因此盡管當父類指針指向子類的對象時,父類的.h聲明文件里未聲明的方法均不能直接調用。僅僅能通過OC的反射機制來訪問。如通過performSelector:@selector(SEL)來訪問,但編譯器此時還是會有警告的。此時調用運行的均為子類的方法。當且僅當這種方法在子類中沒有實現時才會調用父類自己的方法。


???????
?


轉載于:https://www.cnblogs.com/jzdwajue/p/7170612.html

總結

以上是生活随笔為你收集整理的Objective c类的初始化的全部內容,希望文章能夠幫你解決所遇到的問題。

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