——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
创建某些特定类的对象,OC编译器需要知道一些该类的信息,特别是必须知道对象的实例变量和它提供的特性,这时可以使用@interface把这些信息传递给编译器。
<span style="font-size:24px;">@interface Calclator : NSObject
{
@public
int _num1;
int _num2;
}
-(int) sum; //无参方法
-(int) sum:(int)x and:(int)y; //有参方法
@end</span>
知识点:@public表示实例变量都是公开的。( @private 私有的 @protected 受保护的)
“-”表示此方法是一个对象方法。
(int)x 括号内为参数的类型,可以添加多个参数。and并不是固定的,可以命名其他,“ : ”也是方法名的一部分。
@implementation表示你将为这些类方法做实现:
<span style="font-size:24px;">@implementation Calclator
-(int) sum {
return _num1 + _num2;
}
-(int) sum:(int)x and:(int)y{
return x + y;
}
@end</span>
知识点:方法的实现只需要在方法声明中将“ ;”改成“ {} ”
方法的返回值为int类型,应return相应的int类型值。
方法的调用:
<span style="font-size:24px;">int main(int argc, const char * argv[]) {
@autoreleasepool {
Calclator *ca1 = [Calclator new];
ca1->_num1 = 1;
ca1->_num2 = 2;
int s = [ca1 sum ];
NSLog(@"%d",s);
s = [ca1 sum:42 and:39];
NSLog(@"%d",s);
}
return 0;
}</span>
运行结果:3 81
知识点:[Calclator new] 在内存中干三件事:
1.开辟存储空间
2.初始化成员变量(写在类声明大括号中的属性就叫成员变量,也叫实例变量)
3.返回指针地址
类的对象可以用“—>”来为实例变量赋值
对象方法只能由对象来调用