IOS前奏之Object-c @property和@synthesize的基本使用

(一)@property

   1.0 定义:@property 数据类型  属性名称

           1.1 作用:在×××.h中用来代替标准的属性get和set方法。

           1.2使用:首先找到***.h文件,根据前几章节,在oc中一个完整的类有两个文件组成,一个是***.h(属性方法定义声明)   一个 是***.m(方法实现),假如在***.h中有属性_age和_name,  那么原本我们需要通过写-(void)setAge;......,现在使用@property可以完全代替这两类get  和set方法,具体如下:

以上代码的@property int _age ,就相当于  -(void) set_age:(int)age;  -(int)age;这两个方法的声明。其他的一样。

(二)@synthesize

     2.0 定义:@synthesize 属性名称

           2.1 作用:在***.m文件中用来代替标准的get和set方法的实现。

           2.2 使用:找到***.m文件,在该文件中来实现***.h中声明的方法,由于每次都要写get和set的实现,所以我们可以使用       @synthesize来代替***.m中的getset实现。

  很明显以上代码的@synthesize _age 表示

  -(void)set_age:(int)age{              

_age=age;

}

-(int)_age{

return _age;

}

(三)在main.m中测试  代码如下

        运行程序得出的结果是  name is 007  and  age is 100。

(四)深入@property和@synthesize综合

      在这两个一起使用的时候,我们用@property定义属性,并且声明方法(这里的声明有个特征,例如直接属性名字为age               那么编译器自动生成的属性名称为_age,方法为set_age和_age)。

        用这个@synthesize实现的时候,语法是:@synthesize 属性名称,这里的属性名称可以随便取,但是这个随便取的名称需要和 ***.h中的属性名称关联,当在属性名称和×××.h中的属性名称不一样的时候需要这样: @synthesize 属性名称=属性名称               (***.h中自动生成的属性名称)   如: @synthesize age=_age.

        如果是一样的则不需要 @synthesize 属性名称=属性名称(***.h中自动生成的属性名称),直接@synthesize 属性名 称即可。

 注意:

       1,@property@synthesize的使用并不和以前学的get和set冲突,当有其他的需求的时候我们仍然需要在***.h中定义,在***.m中实            现。

      2,他们可以交叉使用,如图:

 

   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值