OC OOP基础

1.创建对象

2.定义对象 --指针 Person *per

3.分配空间[Person alloc] 

4.[对象 方法]给对象发送‘方法’消息

总和:Person *per = [[Person alloc]init];  初始化 ,给per对象发送初始化消息,让它去初始化自己


注意:OC中的字符串可以直接赋值 例如:per ->name = @"虾米";

可以利用->访问类的实例变量


定义 :便利构造器:

-( id) 代表对象方法 只能给对象发送这个消息;

eg:

-(instancetype)initWithName:(NSString *)name age:(NSInteger)age height:(CGFloat)height;


+(id) 代表类的方法 只能给类发送这个消息;

eg:

+(instancetype)personWithName:(NSString *)name age:(NSInteger)age height:(CGFloat)height;


便利构造器的方法,以类名开头,且类名首字母小写;


单独初始化一个属性时,代码如下:

-(instancetype)initWithName:(NSString *)name;


方法实现如下:

-(instancetype)initWithName:(NSString *)name{

    return [selfinitWithName:nameage:0height:0];

}


便利构造器初始方法如下:

+(instancetype)personWithName:(NSString *)name age:(NSInteger)age height:(CGFloat)height;


实现方法如下:

+(instancetype)personWithName:(NSString *)name age:(NSInteger)age height:(CGFloat)height{

    Person *person = [[Personalloc]initWithName:nameage:ageheight:height];

    return person;

}

点运算复述:

利用点运算访问其对应的属性

使用点运算,其实就是调用了setter和getter方法

使用点运算访问值使用的是getter

使用点运算设置值使用的是setter


使用特征属性处理属性的细微操作:

1.读写性特征: 可读可写:read write :产生set和get方法(默认的)只读:readonly只产生get方法

2.原子性特征: 原子性:atomic:在多线程程序下访问设置是安全的(默认的)

当线程在访问该属性时,会给该属性加线程锁,加锁之后其他线程不可以再访问和设置

当线程访问结束时解锁: 效率非常低的

非原子性:nonatomic 多线程不安全,没有线程管理机制一般使用这种,效率比较高

3.语义型特征: assign:用来修饰普通数据类型,不进行特殊的内存管理(默认的)

retain:用来修饰对象,对属性进行内存管理

copy:复制一份副本

加特征的格式

特征中,每一大特征都必须有

多个特征之间用逗号隔开



@property (特征)属性类型属性名称该方法在.h文件中属性定义

可以多个属性写在一起,多个属性时用逗号隔开

@synthesize结合使用,实例变量的类型和属性类型一致



@property NSString *name =实例变量名称;

自动产生一个实例变量,私有实例变量,且只有当前文件可以看到;


如果省略@synthesize不可以同时重写setter getter方法




如果要重写setter getter方法,就不要省略@synthesize


@synthesize属性名称该文件在.m文件中属性接收

@synthesize name = _name;



下章我将会上传OC最重要的知识点,希望大家多多提意见



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值