亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

08.實例方法和類方法的區別與及工廠方法

發布時間:2020-06-22 19:28:03 來源:網絡 閱讀:490 作者:forest馮宋林 欄目:開發技術


實例方法和類方法的區別
區別1:
        實例方法: 實例方法屬于實例,也就是說屬于對象,通過實例調用的方法就是實例方法,實例方法只能通過實例(對象)調用
        聲明方式: -(返回值)方法名:參數  強調的是  “-”
        
        類方法:        類方法屬于類的,調用的時候,只能使用類名調用
        聲明方式:+(返回值)方法名:參數   強調的是 “+”

區別2:
         實例方法: 實例方法在運行時只關注實例的信息(實例變量),實例方法中可以訪問或修改實例變量

        類方法:    類方法在運行時只關注類中的信息,類方法中不可訪問或修改實例變量

區別3:
        實例方法: 實例方法中可以訪問類方法
        類方法: 類方法中不能訪問實例方法


工廠方法
        工廠方法是類方法
        工廠創建對象用
        工廠方法 返回值是 當前類型, 方法名去掉前綴首字母小寫如 TRPoint類的工廠方法名是 point

下面來上代碼:


main.m文件的代碼


#import <Foundation/Foundation.h>
#import "MyPoint.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        MyPoint *point = [[MyPoint alloc]init];

        //實例方法屬于實例,用實例調用
        [point show];

        //類方法屬于類,用類名調用
        //[point2 show2];error

         [MyPoint show2];//right

        MyPoint *point2 = [ MyPoint createPoint];
        [point2 show];//x = 10,y = 20
    }
    return 0;
}


Mypoint.h文件的代碼

#import <Foundation/Foundation.h>

@interface MyPoint : NSObject
@property int x;
@property int y;
-(id)init;
//With W一定要大寫
//-(id)initWithX:(int)x andY:(int)y;
-(void)show;//聲明實例方法
+(void)show2;//聲明類方法
+(void)show3;//聲明類方法
+(id)createPoint;//創建點的類方法
@end


MyPoint.m文件的代碼

#import "MyPoint.h"


@implementation MyPoint
-(id)init
{
    self = [super init];
    if (self) {
        self.x = 100;//_x = 100;
        self.y = 200;
    }
    
    return  self;
}

-(void)show
{
    //實例方法可以修改實例變量,實例方法中self表示當前對象,通過對象可以找到實例變量
    NSLog(@"x = %d,y = %d",_x,_y);
    
    //實例方法中可以調用類方法   
    //[MyPoint show2];
    
}

+(void)show2
{
    //類方法中self不再是對象,那么類方法中就沒有當前對象的概念了,找不到對象就更加找不到對象中的實例變量了
    //類方法中不可以訪問實例變量
   // NSLog(@"x = %d,y = %d",_x,_y);
    //類方法中self標書當前類
    NSLog(@"類方法被調用");
    
    //類方法中不可以調用實例方法

    //[self show];error
    
    //類方法中可以調用類方法
    [self show3];
}

+(void)show3
{
    NSLog(@"我也是一個類方法");
}



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富锦市| 石门县| 吴江市| 洛宁县| 汝城县| 田阳县| 太湖县| 巴彦淖尔市| 石棉县| 孙吴县| 若羌县| 红安县| 绥滨县| 华坪县| 阜阳市| 黑水县| 巨鹿县| 溧阳市| 禹州市| 杭锦旗| 资源县| 扶风县| 神农架林区| 朝阳区| 饶阳县| 涞源县| 柏乡县| 绿春县| 元朗区| 新和县| 璧山县| 汝城县| 乌拉特后旗| 洞口县| 咸阳市| 连江县| 巨鹿县| 郸城县| 天镇县| 犍为县| 邹城市|