Objective-C學習筆記(十九)——對象方法和類方法的相互調用


      事實上在OC的對象方法(減號方法)和類方法(加號方法)並非相互獨立的,它們也能夠發生千絲萬縷的關系,今天我們來研究下它們兩者相互調用的問題。該樣例還是以People類為基礎。

(一)對象方法調用類方法:

(1)先在People.h中分別聲明兩個方法:

-(void)show;

+(void)showw2;



(2)然后在People.m中分別實現兩個方法,並在對象方法中調用類方法,調用方式也是用  “類名 方法名”進行。

-(void)show{

    NSLog(@"我是一個對象方法。我被調用了!");
    [People show2];//調用類方法
}

+(void)show2{

    NSLog(@"我是一個類方法,我被調用了!");
//    [[People alloc] show];
}

(3)最后在main.m中調用對象方法:

People *people = [[People alloc] init];//注意沒有在main.m中直接調用
        [people show ];
        

(4)隨后的輸出結果例如以下。先輸出對象方法中的內容,然后輸出類方法中的內容,結果符合預期。

類方法成功在對象方法中被調用。



(二)類方法調用對象方法

(1)先在People.h中分別聲明兩個方法:

-(void)show;

+(void)showw2;

(2)在People.m文件里實現兩個方法,並在類方法中調用對象方法,注意是怎樣調用的。

[People alloc]相當於實例化了一個對象。使用該對象調用show對象方法;

-(void)show{

    NSLog(@"我是一個對象方法,我被調用了。");
}

+(void)show2{

    NSLog(@"我是一個類方法,我被調用了!");
    [[People alloc] show];
}

(3)最后在mian.m中調用類方法show2.

[People show2];

(4)輸出結果例如以下。先輸出類方法中的內容,再輸出對象方法中的內容,符合我們的預期:


         總之。減號方法和加號方法的相互調用使我們的代碼更為靈活,編程更為方便。


github主頁:https://github.com/chenyufeng1991  。歡迎大家訪問!



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM