oc必须知道的知识点
2024-08-24 19:04:32
id数据类型
1.通用的指针类型
2.没有*号
3.使用id类型时,不能给对象的属性或成员变量进行赋值
4.可以对其发送任何(存在的)消息
import与@class的区别
1.import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称
2.如果类之间有循环依赖关系使用#import来相互包含,那么就会出现编译错误。
3.如果使用@class在两个类的头文件中相互声明,则不会有编译错误出现。
4.@class是放在interface中的
Objective-c中提供了可以让我们扩展类定义的手段:
1.类目:为已知的类增加新的方法;
2.延展:通知在本类的定义里使用类目来声明私有方法;
3.协议:协议声明了可以被任何类实现的方法。
继承 多态
子类可直接“拥有“父类中所有允许子类继承的属性和方法
OC中不允许子类和父类拥有相同名称的成员变量名;
多态:不同对象以自己的方式响应相同的消息的能力叫做多态
先有继承才有多态,没有继承就没有多态(父类指针指向子类对象)
复合
将多个组件组合在一起,形成一个整体,然后使用整体来进行工作,这种组合行为称为复合
成员变量的限制条件
1.public(公有的) :实例变量可以在类的外部和内部操作
2.protected(受保护的)实例变量只能在该类和其子类内操作
3.private(私有的)实例对象只能在该类内访问
4.在oc里面,所有的实例对象默认的可见度是受保护的
类目 延展
无法向类中添加新的实例变量。类别没有位置容纳实例变量。
类目的方法名不能与类的方法名相同
延展的作用就是定义自己的私有方法。
self super
super 父类的标识,当我们需要使用父类的方法或者属性的时候,就可以使用super
self 当前对象的指针,当前访问的对象是什么,当前指针就是谁。也就是说当前调用的是哪个类的实例方法,那self 就是这个类的指针
最新文章
- [CSS]textarea设置下划线格式
- 【C#进阶系列】23 程序集加载和反射
- $scope 的生命周期
- C#读写文本和连接数据库
- 2.3顺序容器-deque
- iOS学习笔记---oc语言第三天
- 苹果内付费 IAP
- hdu 2035 人见人爱A^B
- Photoshop支持ico输出
- Qt中的 Size Hints 和 Size Policies
- [MEAN Stack] First API -- 3. Select by ID with Mongoose and Express
- fszipx.exe
- div的替代品
- Django---请求、响应
- Go语言strings和strconv包
- Codeforces 196E Opening Portals MST (看题解)
- JPanel添加键盘监听事件
- [C#]C#时间日期操作
- redis 数据备份持久化方案
- 【代码笔记】iOS-archive保存图片到本地
热门文章
- ES6新特性:Javascript中的Map和WeakMap对象
- 使用CXF 来发布一个 service
- Windows系统中path环境变量详解
- c# 导入导出Excel
- YARN :Architecture
- 【BZOJ-1787&;1832】Meet紧急集合&;聚会 倍增LCA
- ubuntu安装eclipse tomcat的参考网址
- Restful api介绍
- QIBO CMS /inc/common.inc.php Local Variables Overriding Vul In $_FILES
- bash的配置