对象的属性
来源:互联网 发布:大数据阅读答案 编辑:程序博客网 时间:2024/06/03 20:45
属性的声明:用@property (copy,nonatomic) NSString * name;
int等基本类型的用assign;对象类型的用retain。
使用属性:直接用点“.”调用。(若是成员变量用->调用)
@property可以帮助自动生成访问器。
@synthesize 组合属性,生成相应的访问器和成员变量。
@property NSString* name;//就相当于
-(void) setName:(NSString *)name; -(NSString*) name;
属性说明的作用:访问控制、线程安全、内存控制。使用访问器可以达到数据安全。
访问控制
readwrite 说明了属性是可读写的。
readonly 说明属性是只读的,也就是只会生成访问器
getter=函数名 为属性访问器指定函数
setter=函数名 为属性设置器指定函数 线程安全
nonatomic ⾮非原⼦子性,不保证多线程安全
atomic 原⼦子性,多线程访问时较安全 内存管理
copy 制作⼀一个值的副本,传⼊入到成员变量
assign 默认值,直接赋值,不关⼼心内存管理
retain 关⼼心内存管理
strong 新加⼊入的关键字
//使⽤用set访问器设置年龄
[stu setAge:-200];//stu->age = -200;
对象的使用
对象的定义: 1.内存分配 --为对象动态分配内存地址
2.初始化 -- 在内存中填上的初始值
Student * stu=[Student alloc]
说明:向类发送alloc消息,就是为该类分配一块 足够大内存,用于存放实例变量,同时初始化内 存
int
float
BOOL
指针
0
0
NO
nil
stu=[stu init];
初始化 -- 在内存中填上的初始值
自定义初始化:
-(id) initWithAge : (int ) age
andName: (NSString *) name
{
self=[super init];//调用父类的构造器
if(self){
self.age=age;
self.name=name;
}
return self;
}
Student *stu = [[Student alloc] initWithAge : 1 andName:@"李四"];//初始化赋值
便利构造器:
+(id) studentWithAge : (int ) age
andName: (NSString *) name
{
Student *stu = [Student alloc] initWithAge : 1 andName:@"李四"];
return stu;
}
Student *stu = [Student studentWithAge : 1 andName:@"李四"];
self:代表指向当前实例对象的指针
super:代表指向父类对象的指针
- JavaScript 的对象属性
- [PHP] 对象的属性
- GObject的对象属性
- DataSet对象的属性
- Page对象的属性
- 对象属性的排序
- document对象的属性
- XMLHttpRequest对象的属性
- Form对象的属性
- input对象的属性
- 节点对象的属性
- XMLHttpRequest对象的属性
- JavaScript的对象属性
- 对象的属性
- document对象的属性
- xmlHttpRequest对象的属性
- javascript对象的属性
- JavaScript 对象的属性
- <<黑马程序员>>java基础之网络编程
- 使用fastcgi_finish_request提高页面响应速度
- poj 3734 Blocks 矩阵
- python之sqlite3使用详解
- <<黑马程序员>>java基础之线程
- 对象的属性
- Android之Fragment(官网资料翻译)
- <<黑马程序员>>java基础之正则表达式
- JAVA解析XML的四种方式
- double 保留小数点后两位数
- C语言零星笔记--(const、typedef)
- POJ 2503 Babelfish
- HTTP 返回状态值详解
- URL编码和解码