黑马程序员---------类

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

---------------------------》》》》对面向对象的一些思考 好文章

我们的主函数发一个消息给一个对象,这个对象获取到消息后执行相应的程序,这些程序会发消息给其他对象,指挥(或者不说指挥吧,毕竟不是从主的关系,就好像老板布置任务,员工们互相配合,互相整合工作成果)其他对象工作,这样好像这些对象真的是个“实体”,他们虽然只是整个程序的小小一部分,但是却可以自动完成工作转接,完成自己能完成的那部分,然后把结果发给其他对象。这些对象好像是蚂蚁,互相通过气味(消息)传递信息,合作完成一个大任务。

类的声明:

 

#import"superClass.h"

#import"protocol.h"

@interface:superClass <protocol> //有些地方叫接口,顾名思义,要使用类,就必须import这些声明。

{//成员变量列表 

@public 全局 

@private 私有 只能类中访问 

@protected 可以在子类访问  

@package 框架中访问

//不能用static const 等关键字

}//如果想定义类常量,请看我的另一篇博客

@property 类型名 属性名;//关键字自动创建"_属性名"变量,并且还有getter ,setter的声明和实现

@end

1.setter内存管理参数 


*assign:直接赋值(默认,适用非对象类型)

*retain:release旧值 retain新值,适用于oc对象

    retain分为strong ,weak ,unsafe_unretained

*stong代表被销毁后,会对指向的对象执行release操作,release旧值 retain新值

*weak和strong不一样,和assign类似,但是如果指向对象被销毁,weak属性会自动变为nil

*unsafe_unretained和weak类似,但是如果指向对象被销毁,weak属性不会为nil

*copy :release旧值 retain新值

2.是否要生成set方法

*readwrite:读写

#readonly:只读

3.多线程管理

*nonatomic:性能高 (一般用这个)

*atomic: 性能低(默认)

4.setter和getter的名称

@property(getter = abc, setter = setAbc:)


注意:1.当你想要使用这个类时,如果只是属性要用到它,推荐用@class 类名代替import,编译速度快,防止循环引用。

2.声明保证编译成功,链接过程和函数不一样,函数会把调用的代码和函数所在代码链接(无论通过表还是直接的),oc是通过运行时程序,执行方法调用的,运行时确定消息接受对象,动态绑定。

点语法

自动转成getter和setter

在方法实现里访问成员变量

直接读取成员变量,写入则用setter方法

类名规范:头字母大写,有参数带:号

类方法以+号开头,对象方法以-号开头

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值