// // main.m // OCStudy_01 // // Created by guo denny on 14-11-4. // Copyright (c) 2014年 guo denny. All rights reserved. // // 單行註釋 /*多行註釋*/ #import <Foundation/Foundation.h> //相似#include #import "MyTestClass.h" int main(int argc, const char * argv[]) { @autoreleasepool { //自動釋放池,一種內存管理機制,也是一種引用計算的管理方式 NSLog(@"Hello, World!"); //至關於C的printf,命令行輸出 /* @: 字符串前面多了一個‘@’號 解釋:NSLog函數須要的參數是:NSString,爲了兼容並和C的字符串區分開來,OC在C的字符串前面加上了@符號 也就是C的字符串前面加上@符號,OC的編譯器會認爲是一個NSString對象 備註:object-c中處理字符串的類爲NSString和NSMutableString, 這兩個類的主要區別是: NSString建立後字符串的內容和長度不能動態的改變,而NSMutableString則能夠動態改變字符串的內容和長度。 */ //MyTestClass* testClass = [MyTestClass alloc]; //分配內存並置爲0, //testClass = [testClass init]; //初始化 //上面兩個能夠合成一個, 並且最好這樣寫, 關於爲何要分紅兩個, /*http://www.cocoachina.com/bbs/read.php?tid-125068-page-1.html 這裏面有討論 */ MyTestClass* testClass = [[MyTestClass alloc] init]; [testClass setIntParam: 100]; [testClass setParam:YES secondParam:0.01 thirdParam:'X']; NSLog(@"%d, %f", [testClass getIntParam], [testClass getFloatPram]); } return 0; //和C同樣,表示main函數的終止,返回0表示程序正常結束 }
// // MyTestClass.h // OCStudy_01 // // Created by guo denny on 14-11-4. // Copyright (c) 2014年 guo denny. All rights reserved. // /* Object-C類 */ #import <Foundation/Foundation.h> /* 類的定義 格式: @interface 類名: 父類 { //類成員變量定義; 類型 變量名; } //類方法定義; -(返回類型) 方法名; -(返回類型) 方法名:(參數類型)參數名; //多參數寫法,看起來有點蛋疼 -(返回類型) 方法名:(參數1數據類型) 參數1的數值的名字 參數2的名字: (參數2數據類型) 參數2值的名字 ... ; @end 備註:這裏沒有public private, 能夠認爲全是public */ @interface MyTestClass : NSObject { int intParam; float floatParam; double doubleParam; short int shortParam; long long int longlongParam; BOOL boolParam; //BOOL 變量的值是:YES NO,至關於true false char charParam; char* p; //OC用nil表示空指針,不是NULL,這點跟C不一樣,不過跟pascal是同樣的(好熟悉呀,很久沒寫delphi了) } -(void) print; -(int) getIntParam; -(void) setIntParam:(int) value; -(void) setParam:(BOOL) value1 secondParam:(float) value2 thirdParam:(char) value3; -(float) getFloatPram; @end
// // MyTestClass.m // OCStudy_01 // // Created by guo denny on 14-11-4. // Copyright (c) 2014年 guo denny. All rights reserved. // #import "MyTestClass.h" /* 類的實現 格式 @implementation 類名 -(返回類型) 方法名 { } -(返回類型) 方法名:(參數類型)參數名 { } @end */ @implementation MyTestClass -(void) print { NSLog(@"%d", intParam); } -(int) getIntParam { return intParam; } -(void) setIntParam:(int)value { intParam = value; } -(void) setParam:(BOOL)value1 secondParam:(float)value2 thirdParam:(char)value3 { boolParam = value1; floatParam = value2; charParam = value3; } -(float) getFloatPram { return floatParam; } @end