点操作


1.当我们定义一个成员变量的时候,并且提供了标准的setter和getter函数时,我们就有两种方式来操作成员变量:

@interface Dog : NSObject

{

    int age;

}


- (void) setAge:(int) newAge;

- (int) age;

@end

@implementation Dog

- (void) setAge:(int) newAge

{

    age = newAge;

}

- (int) age

{

    return age;

}

@end


第一种方式: [ ]

Dog *dog = [[Dog alloc] init];

[dog setAge:10];

int dogAge = [dog age];


第二种方式: ' . '

dog.age = 20;

dogAge = dog.age;


注解:第二种方式看起来像似在直接访问成员变量age,但实质上和第一中方式完全一样,在编译器编译的时候,会把第二种形式转换成第一种形式来执行


2.使用@property 和 @synthesize 来代替成员变量的setter和getter函数(@synthesize 和成员变量的声明都可以省略)


@interface Dog : NSObject

@property int age;

@end

@implementation Dog

@end

注解:@property 会告诉编译器生成setter和getter函数


3.@property 告诉编译器生成的setter和getter函数的函数名为:

setter函数是:set+属性名(首字母大写)

getter函数是:属性名

属性名 setter函数名 getter函数名

age setAge age

_age set_age _age


4.利用@synthesize 可以根据属性名来指定成员变量的名字

@property int age;

@synthesize age = _age;(指定成员变量的名字为_age,那么在类内使用这个成员变量的时候,只能使用_age;

也可以不指定,那么编译器也会默认的给变量命名,命名的规则是在属性名签名加上'_',如果属性名是_age,那么

变量的名字为__age)


5.当利用@property 生成的setter和getter函数不能满足要求的时候,我们会重写setter和

getter函数,那么@synthesize 必须要写,不然就会报错




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值