91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

福州市| 峡江县| 临沂市| 蓝山县| 华容县| 蕲春县| 北宁市| 峨山| 秀山| 肇东市| 环江| 松溪县| 元谋县| 肥西县| 织金县| 宁河县| 吉安市| 遂宁市| 屏东县| 卓资县| 桃江县| 博罗县| 彝良县| 垫江县| 柯坪县| 富蕴县| 扎囊县| 临沧市| 汉川市| 遂平县| 永泰县| 宜兰市| 岳阳县| 磐石市| 乌恰县| 邓州市| 张家口市| 眉山市| 行唐县| 海阳市| 出国|