1. 例項方法(instance method)和類方法(class method)
只能通過物件例項呼叫的方法叫例項方法,例項方法都是以"-"開頭的方法。
只能通過類呼叫的方法叫類方法,類方法都是以"+"開頭的方法。
類方法是屬於整個類的,和具體的物件無關,所以,在類方法中無法訪問和具體物件有關的所有資料,比如屬性,比如例項變數,比如例項方法。但是,在類方法中自己建立的物件是可以的,當然也可以訪問該物件的屬性和例項變數。
2. 工廠方法(factory method)
生產(建立)物件的方法的方法叫工廠方法。
類中會經常出現一些工廠方法,其目的是為了方便建立物件。
規則:1)工廠方法一定是類方法
2)工廠方法一定返回id型別,因為要放回乙個剛建立好的物件,類似初始化方法
3)工廠方法的方法名一定類名開頭,注意是去除了字首並首字母小寫的類名,如
類名with...
+ (id)pointwithx: andy:
+ (id)point;
//
// myclass.h
// day03-1
//// created by tarena on 14-3-19.
//#import @inte***ce myclass : nsobject
-(void)method1;//例項方法
+(void)method2;//類方法
@end
//// myclass.m
// day03-1
//// created by tarena on 14-3-19.
//#import "myclass.h"
@implementation myclass
-(void)method1
+(void)method2
@end
//// trstudent.h
// day03-1
//// created by tarena on 14-3-19.
//#import @inte***ce trstudent : nsobject
@property int age;
@property char ***;
-(id)initwithage:(int)age and***:(char)***;
+(id)student;//宣告了工廠方法
+(id)studentwithage:(int)age and***:(char)***; //宣告了有參的初始化方法
@end
//// trstudent.m
// day03-1
//// created by tarena on 14-3-19.
//#import "trstudent.h"
@implementation trstudent
-(id)initwithage:(int)age and***:(char)***
return self;
}//定義有參的工廠方法,去掉字首,類名首字母小寫+with屬性(首字母大寫),依賴於有參的初始化方法
+(id)studentwithage:(int)age and***:(char)***
//定義無參的工廠方法
+(id)student
@end
//// main.m
// day03-1
//// created by tarena on 14-3-19.
//#import #import "myclass.h"
#import "trstudent.h"
int main(int argc, const char * argv)
return 0;
}
06 靜態方法和例項方法
doctype html en utf 8 jquery的靜態方法和例項方法 title script 1 定義乙個類 function aclass 2 給這個類新增乙個例項方法 直接新增給類的就是靜態方法 aclass.staticmethod function 靜態方法通過類名呼叫 aclas...
類方法和例項方法?
筆試中遇到都最最基礎的問題,我竟然有點懵了。首先沒弄清楚什麼是類方法,什麼是例項方法,現在就做乙個總結。類中的方法分為類方法和例項方法。類方法 類中用 static 修飾的方法。例項方法 也稱為物件方法,除了類方法都是例項方法。類方法在類被 jvm 虛擬機器載入進記憶體的時候就會為其分配入口位址,例...
例項變數和類變數 類方法和例項方法
類體中包括成員變數和區域性變數,而成員變數又可以細分為例項變數和類變數,在宣告成員變數的時候,用static給予修飾的稱作類變數,否則稱作例項變數。類變數也稱為static變數,靜態變數 那麼,類變數和例項變數有什麼區別呢?我們知道,乙個類通過使用new運算子可以建立多個不同的物件,這些物件將被分配...