属性

属性,其实就是帮你生成一个实例变量和其对应的set、get方法。如果你写在.h文件中呢,外部就可以调用这个属性,写在.m文件的 『延展』 里面,外部就无法调用这个属性
@property NSString *name;

          || 等价于
 -(void)setName:(NSString *)name;
 -(NSString *)Name;
 NSString *name;

.m文件@synthesize (可以省略)
@synthesize 属性名称 = 实例变量名 自动产生一个实例变量,且只有当前文件可
以看到 可见度为private
@synthesize name = _name,age = _age, sex = _sex,height = _height;
在 ios5.0后,@synthesize也可以省略不写,此时在. h 文件中只写@ property 即可,
编译器(Xcode)会自动生成相应的实例变量,实例变量的名字是属性名称前加下划线
如果是省略synthesize,不可以重写set和get方法,因为重写set和get的时候,@property不会自动生成对应的实例变量

在我们使用属性的时候呢,我们会有一些转悠的修饰词,对属性进行修饰 ,称之为属性的特征。

@property( 特征 )属性类型 属性名称
每一大特征都必须有,多个特征之间用逗号隔开
一、读写性特征
可读可写:readwrite 产生set和get方法 默认
只读:readonly 只产生get方法
二、原子性特征
原子性:atomic 在多线程程序下访问设置是安全的 默认
非原子性:nonatomic 多线程不安全,没有线程管理机制
三、语义型特征
assign: 用来修饰普通数据类型,不进行特殊的内存管理 默认
retain: 用来修饰对象,对属性进行内存管理
copy:复制一份副本

.点运算

利用点运算访问对应的的属性 .属性
使用.运算 就是set和get方法

stu.name = "猪八戒";      //set
NSLog(@"%@",stu.name);  //get

你可能感兴趣的:(属性)