OC的属性和便利构造器

属性

属性的作用:1.定义了一个成员变量,成员变量的命名是_ 加上属性名 2.属性声明并实现了setter和getter方法

属性的属性:

1.读写性

(1)就是对设置器和访问器进行控制,默认是可读可写,readwrite

(2)readonly:只读,被他修饰的属性只有getter方法,没有setter方法

(3)getter = method相当于给getter方法重新起名

(4)当设置setter的时候,别忘了新的名字加上冒号

2.原子性:nonatomic,atomic,默认是atomic,可以保证在多线程的情况下,访问数据,安全性高.但是我们一般只是普通赋值,打开线程锁反而浪费资源,所以我们一般填nonatomic

3.语义设置:和内存相关

(1)assign:一般基本数据类型使用,比如NSInteger,CGFloat等,这部分内容在栈区不需要管理内存

(2)retain:一般的对象类型,比如我们自己定义的类,系统提供的像数组等对象,都需要通过retain进行修饰.有它就不要重新设置setter方法

(3)copy:目前只有NSString使用.使用copy时需要copy协议

@synthesize在老的版本的xcode里.声明了一个成员变量,新版本不需要写,如果以后碰见,不用管

super:如果子类重写完父类的方法,但是还想执行父类的方法,可以用super作为消息的接受者,取执行相应父类的方法

便利构造器:先把父类继承过来的成员变量进行初始化

对象回到自己的类里成为self,如果返回了一个初始化失败的对象,就会返回一个空指针,空指针相当0,No就不会执行赋值的操作,只有返回一个有效的对象,才会进行赋值操作

- (id)initWithStuName:(NSString *)stuName
             stuHobby:(NSString *)stuHobby
               stuAge:(NSInteger)stuAge
             stuScore:(CGFloat)stuScore{
    // 先把父类继承过来的成员变量进行初始化
    self = [super init];  // 对象回到自己的类里成为self
    // 如果返回了一个初始化失败的对象,就会返回一个空指针,空指针相当于0,NO,就不会执行赋值的操作,只有返回一个有效的对象,才会进行赋值操作
    if (self) {
    _stuName = stuName;
    _stuAge = stuAge;
    _stuHobby = stuHobby;
    _stuScore = stuScore;
    }
    return self;
}
便利构造器是类方法
+ (id)studentWithStuName:(NSString *)stuName
                  stuAge:(NSInteger)stuAge
                stuHobby:(NSString *)stuHobby
                stuScore:(CGFloat)stuScore{
    Student *stu = [[Student alloc] initWithStuName:stuName stuHobby:stuHobby stuAge:stuAge stuScore:stuScore];
    
    return stu;

}
点语法:

作用主要是为了方便对象快速对成员变量进行赋值和取值的操作,有等号的是设置器,没有等号是访问器

//   per.age = 100;
//    NSLog(@"%ld",per.age);






















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值