一、类
1.类:具有相同特性和行为的事物的抽象(对象是类的实例,类是对象的类型)
1)对象:是指一个类的指针(实例)变量
2)实例变量:已经初始化过后的对象
注:成员变量属于实例变量的一部分,所有的指针变量都是实例变量
2.在开发中,先定义类,再创建对象,然后使用对象。
3.定义类时包含两部分:接口部分和实现部分
1)接口部分:对外声明类的特性和行为(声明类的实例变量和方法)
包含:类名、父类名、实例变量和方法
方法包括返回值、方法名和形参(在方法里就是条件)
2)实现部分:对内实现行为(内部的具体实现)
4.方法包括类方法和实例化方法
1)类方法:“+”号方法,由类来调用
2)实例化方法:“-”号方法,由对象来调用
5.调用方法的步骤:
1)先看这个方法属于哪一个类的
2)看方法是什么类型的(实例化方法、类方法)
3)看返回值类型
6.成员变量的四种可见度:@public、@protected、@private、@package
1)@public:公共的,即实例变量在类的外部和内部均可以使用
2)@protected:受保护的,即实例变量只能在类的内部及其子类使用
3)@private:私有的,即实例变量只能在类的内部使用(子类不允许使用)
4)@package:包可见,即实例变量只在库内部使用,外部开发者调用无效
7.类的扩展方式:类目、延展、协议和继承
1)类目:用于分类使用,将一个类的不同功能的方法进行不同的分类,并给一个类进行扩展,添加方法和属性
2)延展:主要是给类添加私有变量和私有方法
3)协议:一堆公共方法的集合(公共方法名的集合,只有.h),可以解决多继承,协议中方法在那个类里实现,那么方法就属于哪一个类
注:1)类目中不能写成员变量,可以写属性,但是实现麻烦,一般类目中创建方法
2)类目中没有继承关系
二、OC三大特性
1.oc的三大特性:继承、封装和多态
2.继承
1)子类可以继承父类的所有东西,所以不能用@class必须用import
2)子类如果继承父类,那么在子类的初始化方法中必须调用父类的初始化方法,如果初始化方法不同,子类必须声明