对象的实例变量默认的访问权限是protected,所以主函数终不能直接访问到实例变量
实例方法默认访问权限是:public
— (void) setX: (int)_x
—(int)x;
对象.实例变量 => 并没有直接访问protected成员,而是通过get set 函数来访问protected成员
对实例变量a,b自动生成set、get方法的定义
@property int a,double b; // (nonatomic)非线程保护,节约系统资源 默认的是atomic
@synthesize a,b;
readonly:实例变量只能读不能写(只能调用get函数)
readwrite:能读能写(set、get均能调用,为默认属性)
assign: 浅拷贝 使用基本数据类型
retain:
copy:
getter: 给get方法 (即为x ) 起别名
setter:给set方法起别名 setter=shezhiy: // (一定要注意冒号,因为要传参)
组合:一个类的实例变量是另一个类的对象
目的:代码重用
// 深拷贝
-(void)setR:(reangle*)_r{
r=[[reangle alloc] init]; // 开辟新空间
[r setWidth:_r.width];
[r setL:_r.l];
}
-(reangle*)r{
return r;
}