Object-C 是C的衍生語言,繼承了全部C語言的特性,可是Object-C並非繼承自C語言特性自己。html
#import <Foundation/Foundation.h> @interface Print: NSObject{ //Objective-c的全部類都繼承於NSObject // 成員屬性 NSString * caption; NSString * photographer; } //在Objective-C 2.0引入了屬性合成,至關於以前的get/set方法 @property(nonatomic, copy) NSString * caption; @property(nonatomic, copy) NSString * photographer; //類方法 +(NSString *)printSize: (NSString *)size; //實例方法 -(NSString *)printName; -(NSString *)printName: (NSString *)name; -(BOOL)print: (NSString *)size setLength: (int)length; @end
上面代碼展現瞭如何在Object-C聲明一個類,其中也涉及到了少量繼承:java
Object-C聲明一個類以@interface 開始,以@end 結束;web
Print 爲所聲明的類,繼承自NSObject 類;學習
//無參實例方法 -(NSString *)printName; //有參實例方法 -(NSString *)printName: (NSString *)name; //多參實例方法 -(BOOL)print: (NSString *)size setLength: (int)length;
至關於Java中的:atom
public static String printSize(String name){ } public String printName(){ } public String printName(String name){ } public Boolean print(String name, int length){ }
首先要把之前學習面嚮對象語言的慣性思惟拋去,在Objective-C裏面沒有public和private的概念,你能夠認爲全是public;它只有類方法和實例方法,加號表示類方法,類方法能夠直接調用,而不用建立這個類的實例;減號表示實例方法,須要建立這個類的實例對象才能夠調用。spa
(void)和(BOOL)分別爲返回值的類型;
那麼BOOL是否是跟Java語言中的Boolean值同樣呢,不是的:
BOOL使用8位存儲,YES定義爲1,NO定義爲0,大於1不爲YES,跟標準C不一樣。
若不當心將一個長於1字節的整型值賦給BOOL,則只截取低八位
Obejective-C中1不等於1,絕對不要將BOOL值和YES比較.net
引用轉載自:www.cnblogs.com/moonvan
/archive/2011/10/13/2210498.htmlcode
#import <Foundation/Foundation.h> //使用@implementation開始和@end結束實現類的內容 @implementation Print @synthesize caption; @synthesize photographer; +(NSString *)printSize: (NSString *)size{ ...... } -(NSString *)printName: (NSString *)name{ ...... } @end
以後,就是如何調用的問題了:orm
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]){ NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; //實例化類的對象 Print * pt = [[Print alloc]init]; //方法的使用 NSString * a = [self printSize: @"20"]; NSString * b = [pt printName]; NSString * c = [pt printName: @"Yi_Yuan_n"]; BOOL d = [pt printName: @"Yi_Yuan_n" setlength: 175]; //屬性的使用 //設置器的調用 [pt setCaption: @"haha"]; [pt setPhotographer: @"hehe"]; //獲取器的調用 NSString * haha = [pt getCaption]; NSString * hehe = [pt getPhotographer]; //輸出 NSLog(@"%@", haha); NSLog(@"%@", hehe); [pt release]; [pool drain]; return 0; }