// // 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