標籤:objective-c 對象方法 類方法 xcode
其實在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)輸出結果如下,先輸出類方法中的內容,再輸出對象方法中的內容,符合我們的預期:
。
總之,減號方法和加號方法的相互調用使我們的代碼更為靈活,編程更為方便。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Objective-C學習筆記(十九)——對象方法和類方法的相互調用