您的位置:首页 > 职场人生

黑马程序员-我的第十篇学习日记:OC中点语法,@property和@synthesize,完整创建一个可用对象

2014-03-29 18:08 274 查看
----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

完整创建一个可用对象

1.分配存储空间   +alloc

2.初始化  init

如:Person  *p1 = [Person alloc];    //调用+alloc分配存储空间

       Person   *p2 = [Person init];    //调用-init进行初始化

       Person   *p3 = [[Person  alloc] init];   //两句合成一句,先调+alloc给类对象分配存储空间,然后调用-init进行初始化

点语法

点语法本质还是方法的调用

如:Person
  *p3 = [[Person  alloc] init]; 

       p3.age=10;     //相当于[p3 setAge: 10]set方法 ,访问了成员变量age且赋值10

       int  a = p3.age    //相当于[p age]get方法

@property和@synthesize

@property:可以自动生成某个成员变量的set和get方法的声明

写法:

@property  int  age;   

上面的程序相当于-(void)setAge: (int)age;和-(int)age;的声明

@synthesize

@synthesize:系统自动生成set方法和get方法的实现,并且访问成员变量

如:@synthesize
age = _age;     //会访问_age这个成员变量,如果不存在,就会自动生成@private类型的_age变量

上面程序相当于

-(void)setAge: (int)age



_age=age;



和-(int)age

 
  {

return
 _age;

 
 }

注意:如果你写了set方法和get方法其中一个,又写了@property和@synthesize

系统会自动补完整set方法和get方法的声明和实现

如果set方法和get方法都写了,然后又写了@property和@synthesize

那@property和@synthesize就没有作用了

----------------------
ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐