Objective-C面向对象编程-知识点汇总

Part-01:
1、OC的历史及简介
2、如何创建一个OC的工程
3、OC的Hello World程序
4、OC的语法格式的区别
5、类与对象

1、类:包含数据成员和函数成员的集合,是程序员自己创造的又一种数据类型
2、对象:类这种类型定义的变量
3、分割文件:.h(声明) 和 .m(实现) 文件
4、带多个参数的方法如何定义

Part-02:
1、类与对象(续)

1、如何定义私有方法:不在.h中声明,在.m中直接定义的方法
2、成员变量(类当中说明的方法)与实例变量(类定义的对象,对象里有的内容)
3、成员变量的访问权限(私有,保护,包,公有)
4、属性的简化
5、无参初始化方法 -(id)init
6、带参初始化方法 -(id)initWith...
7、id 类型:仅能指向对象的地址,不能指向基本数据类型变量的地址
8、self:是一个指针,哪个对象调用方法就指向哪个对象,其作用是区分不同对象。
    指向的是当前类的对象
9、super:也是一个指针,指向当前类的对象中父类的成员
10、实例方法:是用-号定义的方法,用对象调用的方法
    (方法就是函数,区别是:方法是类中的函数)
11、类方法:是用+号定义的方法,用类名来调用类方法

Part-03:
1、类与对象(续)

1、无参工厂方法
2、带参工厂方法
3、单例模式:只能生产一个对象的工厂方法
4、引用计数(MRC)
    1、概念:系统添加的计数器
    2、retain方法:引用计数器+1
    3、release方法:引用计数器-1
    4、野指针:指向公共区域的指针
    5、空指针:赋值成nil的指针
    6、属性(@property)与引用计数
        1、assign(和retain相对)、readonly、【atomic(安全)、nonatomic(不安全)多线程安全性】
    7、autorelease

Part-04:
1、继承 一般在多态的时候使用继承

1、概念:继承实际上是一种代码复用技术,(is a)的关系
2、派生:指的是在子类中添加新的属性和方法
3、重写:子类对父类的方法不满意时可重写父类中的方法
3、隐藏:当子类重写父类的方法后,子类中将有两个同名的方法,
    而从父类中继承的方法被隐藏起来不能被调用

2、整体与部分

1、组合:是一种类之间的(contains a)的关系,要求两个类同生共死;不是继承的关系(例:动物和头)
2、聚合:是一种类之间的(has a)关系,它不要求两个类同生共死;不是继承的关系(例:电脑和显示器)
3、优点:低耦合,继承是高耦合
4、缺点:涉及的类太多

3、多态 必须得使用继承

1、概念:一个对外接口,多个内在实现
2、参数多态
3、数组多态
4、返回值多态

Part-05:
1、协议(一对多) 可以定义属性和方法,必须在达成协议的类里才能实现

1、定义协议
2、required和optional关键字
3、协议的继承
    1、可以同时继承多个协议     *OC的类只能单继承  *一个协议可以对应多个类
4、协议数组
5、协议参数
6、协议返回值

2、分类(一对一) 一个分类只能依附一个主类

1、分类的定义
2、分类的使用,像没有分类一样直接使用这个类
3、注意:在分类中不能有实例变量或属性,但是在扩展中可以定义

3、扩展(*定义扩展和定义分类一样,只是没有名字,但可以有实例变量或属性
*扩展没有.m文件,分类有.m文件;扩展中声明的方法必须在主类的.m文件中实现)

1、定义:没有名字的分类
2、扩展当中可以有实例变量和属性(与分类的区别)

Part-06:
1、ARC

1、什么是ARC,iOS 5.0以后开始使用,iOS 7.0以后强制使用
2、MRC与ARC的区别:
    1、ARC中不用写retain,release,autorelease,dealloc
3、strong<=>retain
4、weak<=>assign
5、其他修饰符
    1、__unsafe_unretian
    2、__autoreleaseing
6、由MRC转换成ARC的方法:
edit->Convert->To Objective-C ARC
7、混编选项:-fno-objc-arc 标志着文件不适用ARC

2、NOObject类

1、alloca,init,new,dealloc
2、copy(深拷贝):深拷贝可以避免野指针和内容被修改的问题
    1、遵守协议NSCopying
    2、在需要深拷贝的类中添加-(id)copyWithZone:(NSZone*)zone方法
    3、使用copy方法实现深拷贝
    4、属性参数可以是copy,此时对属性的赋值将进行深拷贝
3、类对象:用于判断一个对象(stu)是否是指定类(DJTeacher)的对象
4、比较类信息
    1、isKindOf是否为指定类及其父类们的对象
    2、isMemberOf仅判断对象s是否为指定类的对象,不判断指定类的父类
    3、isSubclassOf是判断一个类是否是另一个类的子类,它是一个类方法

Part-07:
1、NSObject(续)

1、方法选择器
2、协议选择器

2、NSString

1、对象创建(3种)
2、分割(3种)
3、拼接(3种)(结果是一个新的字符串)
4、替换(1种)(该替换完成后生成新的字符串)
5、用文件内容创建字符串

3、NSMutableString(可变字符串)

1、对象创建(4种)
2、在字符串中添加内容(使字符串变长)(字符串本身长度变长)(两种)
3、在字符串中删除内容(使字符串变短)(一种)
4、替换(该替换完成后只是更改了原字符串)(一种)

4、NSNumber

1、用于封装C语言的基本数据类型,成为一个 Objective-C 的类的对象
(OC的数组元素不允许是C的基本数据类型变量)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值