您的位置:首页 > 其它

OC中的一些基础知识,不对的地方还请指正!

2016-03-12 20:11 211 查看
1. 什么是类和对象 ?

>类是一种抽象的数据类型,  是具有相同属性和行为的同一类元素的总称.

>类是对对象的抽象,  对象是类的具体实例.

>类是抽象的,  不占内存,  对象是具体的, 占存储空间.

2. 什么是成员变量 、实例变量 、属性 ?

>@interface花括号中声明的变量是成员变量.

>实例变量是类的实例化, 成员变量和属性实例化也会成为实例变量.

>属性是成员变量+setter+getter. 

3. 什么是公有变量 、私有变量 、公有方法 、私有方法?

这个我不是很确定,暂没找到准确的答案

通常.h中声明的属性和方法是公有的,.m中声明的变量是私有的,没在.h中声明且在.m中声明的方法是私有

4. 什么是类方法和实例方法 ? 区别 ?

>类方法用 "+" 开头,实例方法用 " - " 开头.

>类方法通过类名调用, 实例方法通过实例对象调用.

>类方法中不能使用类的属性, 实例方法中能使用属性.

>类方法中self是类对象, 实例方法中self是实例对象. 

>类方法不能直接访问实例方法, 而实例方法可以直接访问.

>都可以访问类方法.

5. 什么是继承、封装、多态?

继承、封装、多态是面向对象编程的三大特性.

>继承即两个类之间是一种所属关系.

>子类会原封不动的拷贝父类的属性和方法.

>子类可以添加自己特有的方法和属性和方法(派生).

>子类重写父类的方法,则优先调用子类中实现的方法(隐藏).

>封装即将对象运行所需的资源封装在程序对象中.

>封装隐藏对象的属性和实现细节, 仅对外公开接口

>增强安全性和简化编程.

>多态是一个对外接口,多个内在实现, (参数多态, 返回值多态, 数组多态)

6. 什么是协议、分类、扩展? 区别?

>协议是制定统一无则,但可以有各自的实现方法

>协议声明函数,但不实现函数

>协议可以单一继承,也可以多重继承

>类可以采纳单个或多个协议

>有形参协议、返回值协议、数组协议

>分类是将类的不同功能模块分开写

>分类中不能新的成员变量或属性

>分类中的方法与本类中的方法同名时,本类中的方法会不起作用

>扩展是没有名字的分类

>扩展可以声明成员变量或属性

>在.h文件中定义函数,在主类的.m文件中实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: