(1)Object C不是严格的重载
-(int) counter:(int)x;
-(int) counter:(float)x;//错误,和第一个方法冲突!
-(int) counter:(int)x :int(y);
-(int) counter:(int)x :float(y);//错误,与上一个方法冲突,因为两者都是匿名标签的函数(counter::)
-(int) counter:(int)x andPlus:(int)y; //正确,方法名字为(counter : andPlus:)
(2).h文件中的所有函数都是public,默认声明是@protected
(3)点语法
例如,foo类中有int属性value,那么如下命令行意思相等
foo.value=200[foo setValue:200] 既setter方法
age=foo.valueint age=[foo value] 既getter方法
(4)如上,在类的内部访问value是访问属性,而self.value是访问其setter方法
(5)如果需要区分属性和方法名,可以如下表示
.h文件:
@interface foo{
int _value;
}
@property int value;
@end;
.m文件
@implementation foo
@synthesize value=_value;
@end;
(6)property的属性
(缺省) readwrite,有getter和setter函数
readonly,只有getter函数
(缺省) assign
retain
copy
nonatomic 表示不考虑线程安全问题
(7) 构造函数:initWithXXXX,既初始化
(8) 析构函数:对象从内存中销毁前夕调用的函数
(9) +方法就是静态方法,在类的第一次实例化时调用,只调用一次
(10)
(11)