属性

1.什么是setter方法, 什么是getter方法

      setterf方法:为单一实例变量赋值的方法称为setter方法(设置器);

      getter方法:读取实例变量值的方法称为getter方法(访问器);


2.setter和getter方法的书写格式

             setter方法的书写格式如下:

                              -(void)setAge:(NSInteger)age;

             注意:set + 实例变量名(首字母大写);


              getter方法的书写格式如下:

                                -(NSInteger)age;

               注意:返回值类型与变量类型一致,方法与实例变量名相同;


3.什么是属性:属性是Objective - C  2.0定义的语法,提供setter 、getter方法的默认实现。在一定程度上简化程序代码,并且提高程序的安全性。

                  


4.属性是如何定义的

           (1).属性的声明:在.h文件中使用@property声明属性;

                        如:@property NSString *name;

                 相当于在@interface中声明了两个方法:

                 setter方法:- (void)setName:(NSString *)name;

                getter方法 :- (NSString *)name;         


             


5.属性如何实现

           (1)属性的实现:在.m文件使用@synthesizer实现属性

                        如:@synthesize name = _name;

                相当于在@implementation实现了

                          setter方法:- ( void) setName:(NSString *)name { _name = name;

                                                       }

                          getter方法:- (NSString *)name {

                                                         return _name;

                                                                    }    

:@synthesize在类的实现部分。

·在Xcode4.5以及之后的版本中,@synthesize可以省略,只使用@property声明属性即可。          在默认情况下,当没有实现 setter和getter 方法时,通过 @synthesize可以自动生成标准的

setter和getter方法。

           


6.属性的作用:作用是生成setter以及getter方法的实现,如果方法内部操作的实例变量未定义,系统会自动生成一个属性名的实例变量,但是生成的实例变量的可见度是私有的,子类不可访问。


7.属性的特性都有哪些,每个特性的分类又有哪些,关键字是什么,作用是什么?

           (1)读写性控制(readonly、readwrite、setter=、getter=);

   readonly:只读状态,是告诉编译器,属性只生成getter方法,不生成setter方法

readwrite:读写状态,是告诉编译器,属性即生成setter方法又生成getter方法,既有设置器,也有访问器,默认的读写特性。

setter=:指定属性生成的setter方法的名字。

getter=:指定属性生成的getter方法的名字。

          (2).原子性控制(nonatomic、atomic);

atomic:原子特性,setter、getter方法在多线程访问下是绝对安全的,即setter、getter内部做了多线程访问处理。默认的原子特性;

nonatomic:非原子特性。setter、getter方法内部不会做多线程访问处理,仅仅是普通的setter、getter方法。

          (3).语义特性:(语义设置   assign、retain、copy)

如果属性是非对象类型(如:int、float等)属性的语义设置使用assgin.

如果属性是对象类型(如:NSString等)属性的语义设置使用retain.

如果属性是对象类型并且想得到对象的副本,使用copy.(对于retain和copy的区别以及copy的使用场景,在之后讲到内存管理会详细讲解)

应用实例如:@property (nonatomic, assign) NSInteger age;


8.@property,@synthesize分别有什么作用。

            在Xcode4.5以及之后的版本中,@synthesize可以省略,只使用@property声明属性即可。在默认情况下,当没有实现 setter和getter 方法时,通过 @synthesize可以自动生成标准的setter和getter方法。


9.点语法的定义:点语法是Objective - C  2.0中定义的语法格式。提供了一种便捷的属性访问方式。



10.要区别在不同情况下使用的点语法是setter方法还是getter方法

             (1)只要符合系统默认setter、getter书写格式的方法都可以使用点语法。

               (2).属性是一对setter、getter方法,点语法是属性的另一种调用格式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值