OC中的一些基础知识,不对的地方还请指正!
2016-03-12 20:11
232 查看
1. 什么是类和对象 ?
>类是一种抽象的数据类型, 是具有相同属性和行为的同一类元素的总称.
>类是对对象的抽象, 对象是类的具体实例.
>类是抽象的, 不占内存, 对象是具体的, 占存储空间.
2. 什么是成员变量 、实例变量 、属性 ?
>@interface花括号中声明的变量是成员变量.
>实例变量是类的实例化, 成员变量和属性实例化也会成为实例变量.
>属性是成员变量+setter+getter.
3. 什么是公有变量 、私有变量 、公有方法 、私有方法?
这个我不是很确定,暂没找到准确的答案
通常.h中声明的属性和方法是公有的,.m中声明的变量是私有的,没在.h中声明且在.m中声明的方法是私有
4. 什么是类方法和实例方法 ? 区别 ?
>类方法用 "+" 开头,实例方法用 " - " 开头.
>类方法通过类名调用, 实例方法通过实例对象调用.
>类方法中不能使用类的属性, 实例方法中能使用属性.
>类方法中self是类对象, 实例方法中self是实例对象.
>类方法不能直接访问实例方法, 而实例方法可以直接访问.
>都可以访问类方法.
5. 什么是继承、封装、多态?
继承、封装、多态是面向对象编程的三大特性.
>继承即两个类之间是一种所属关系.
>子类会原封不动的拷贝父类的属性和方法.
>子类可以添加自己特有的方法和属性和方法(派生).
>子类重写父类的方法,则优先调用子类中实现的方法(隐藏).
>封装即将对象运行所需的资源封装在程序对象中.
>封装隐藏对象的属性和实现细节, 仅对外公开接口
>增强安全性和简化编程.
>多态是一个对外接口,多个内在实现, (参数多态, 返回值多态, 数组多态)
6. 什么是协议、分类、扩展? 区别?
>协议是制定统一无则,但可以有各自的实现方法
>协议声明函数,但不实现函数
>协议可以单一继承,也可以多重继承
>类可以采纳单个或多个协议
>有形参协议、返回值协议、数组协议
>分类是将类的不同功能模块分开写
>分类中不能新的成员变量或属性
>分类中的方法与本类中的方法同名时,本类中的方法会不起作用
>扩展是没有名字的分类
>扩展可以声明成员变量或属性
>在.h文件中定义函数,在主类的.m文件中实现
>类是一种抽象的数据类型, 是具有相同属性和行为的同一类元素的总称.
>类是对对象的抽象, 对象是类的具体实例.
>类是抽象的, 不占内存, 对象是具体的, 占存储空间.
2. 什么是成员变量 、实例变量 、属性 ?
>@interface花括号中声明的变量是成员变量.
>实例变量是类的实例化, 成员变量和属性实例化也会成为实例变量.
>属性是成员变量+setter+getter.
3. 什么是公有变量 、私有变量 、公有方法 、私有方法?
这个我不是很确定,暂没找到准确的答案
通常.h中声明的属性和方法是公有的,.m中声明的变量是私有的,没在.h中声明且在.m中声明的方法是私有
4. 什么是类方法和实例方法 ? 区别 ?
>类方法用 "+" 开头,实例方法用 " - " 开头.
>类方法通过类名调用, 实例方法通过实例对象调用.
>类方法中不能使用类的属性, 实例方法中能使用属性.
>类方法中self是类对象, 实例方法中self是实例对象.
>类方法不能直接访问实例方法, 而实例方法可以直接访问.
>都可以访问类方法.
5. 什么是继承、封装、多态?
继承、封装、多态是面向对象编程的三大特性.
>继承即两个类之间是一种所属关系.
>子类会原封不动的拷贝父类的属性和方法.
>子类可以添加自己特有的方法和属性和方法(派生).
>子类重写父类的方法,则优先调用子类中实现的方法(隐藏).
>封装即将对象运行所需的资源封装在程序对象中.
>封装隐藏对象的属性和实现细节, 仅对外公开接口
>增强安全性和简化编程.
>多态是一个对外接口,多个内在实现, (参数多态, 返回值多态, 数组多态)
6. 什么是协议、分类、扩展? 区别?
>协议是制定统一无则,但可以有各自的实现方法
>协议声明函数,但不实现函数
>协议可以单一继承,也可以多重继承
>类可以采纳单个或多个协议
>有形参协议、返回值协议、数组协议
>分类是将类的不同功能模块分开写
>分类中不能新的成员变量或属性
>分类中的方法与本类中的方法同名时,本类中的方法会不起作用
>扩展是没有名字的分类
>扩展可以声明成员变量或属性
>在.h文件中定义函数,在主类的.m文件中实现
相关文章推荐
- hdu 5546 Ancient Go(★)
- C#中类中构造函数的执行序列
- Java集合源码学习笔记(二)ArrayList分析
- 第2周作业 2013551628 邱鹏
- 杭电oj 2032 杨辉三角
- HDU 1496 整数Hash
- adb failed to start daemon 彻底解决
- CoreData笔记
- Linux下is not in the sudoers file解决方法
- 单例模式的七种写法
- [国嵌攻略][139][输入子系统原理分析]
- ul和ol的一些知识
- Codeforces Round #307 (Div. 2) 551E - GukiZ and GukiZiana 分块
- 第二周项目3输出图形(d)
- ssh 传送下载文件
- 优先队列模板(两种方式)(3785)
- CUDA编程->CUDA入门了解(一)
- 深拷贝
- Linux笔记(26)——用户与用户组进阶命令
- 【杭电-oj】-2010-水仙花数