</pre><pre code_snippet_id="642096" snippet_file_name="blog_20150412_1_2293226" name="code" class="objc">#import <Foundation/Foundation.h>
@interface JiSuanQi : NSObject
- (int) pingFang:(int)num;
// - (int) sum:(int)num1 :(int)num2;
- (int) sumWithNum1:(int)num1 andNum2:(int)num2;
@end;
@implementation JiSuanQi
// OC方法中 一个参数对应一个冒号, 冒号在类型前边参数名在类型后边,参数类型用括号括起来
- (int) pingFang:(int)num
{
return (num*num);
}
// 函数名 sumWithNum1: andNum2: 冒号后边是参数, 前边是函数名+描述信息
// 多个参数的函数名由冒号前边的修饰符组成
// 冒号也是方法名的一部分
- (int) sumWithNum1:(int)num1 andNum2:(int)num2;
{
return num1 + num2;
}
@end;
int main()
{
JiSuanQi *jj = [JiSuanQi new];
// 带参数的方法调用时,参数同样写在冒号后边,一个冒号对应一个参数
NSLog(@"5的平方是:%i", [jj pingFang:5]);
NSLog(@"2 + 34 = %d", [jj sumWithNum1:2 andNum2:34]);
return 0;
}
匿名对象
#import <Foundation/Foundation.h>
@interface Car : NSObject
{
@public
int speed;
}
- (void)run;
@end
@implementation Car
- (void)run
{
NSLog(@"速度为%i的车子跑起来了", speed);
}
@end
int main()
{
// 匿名对象,对象已经在堆中申请分配空间
// 但没有任何指针变量接收对象地址 但可直接调用对方方法
// 开发中是不应该这样写的。可能会引起内存泄漏,但知道了解有这样一种表达方式
[[Car new] run];
return 0;
}