重写setter与getter方法以及其使用情况

1.setter方法:

  对成员变量进行赋值,相当于写入操作;是为了从外部类得到一个参数,赋值给内部变量;其函数名必须以set开头,必须有一个参数;

  例子:- (void)SetName:(NSString *)newName

        {

_name = newName;把外部类传过来参数赋值(写入)给内部变量。

 }

2.getter方法:

  对成变量进行取值操作,函数必须有返回值,且函数名是内部变量名;

  例子:- (NSString  *)name

 {

return _name;把内部变量返回给调用的地方。

  }

3.属性:@property (nonatomic,copy) NSString *name;属性内部自动生成(封装)setter和getter方法。

4.如果变量,属性写在头文件(h文件)中,另一个类可以通过 属性来访问变量,如果写在实现文件(m文件),则只属于当前类,外部内不能访问,可以达到私有变量的目的。

5.关于类之间的循环保留而导致的死循环:如果Car类保留了(拥有)Engine类engine对象(正常情况是这样),但是如果Engine类也保留(拥有)了Car类的car对象,就会导致保留死循环使引用计数器发生故障,因为引用计数器永远不会归零,也不会被释放。除非engine对象释放了car对象,Car类的dealloc方法才会调用,但是car对象的dealloc方法没有调用的话,engine对象也不会释放,他们就一直相互等待对方释放,造成了死循环。所以一般的持有规则是:所有者对象保留被拥有者的对象,反之则不行。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值