学iOS开发的都知道,Objective-C是编程中最重要的语言,下面就简单介绍一下Objective-C的基础理论。
Objective-C,通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统。
1、类和对象: ---------------面向对象的核心;
类:具有相同特和行为的事物的抽象。
类与对象的关系: 对象是类的实例 类是对象的类型;
2、objective- c中类的定义:
定义类分为两个部分:
1、接口部分:对外声明类的特征和行为 作用: 声明类的实例变量和方法,即类的特征和行为(需要做的任务)
2、实现部分:对内实行类的行为 作用:实现方法
3、创建对象:类是模板,对象是具体表现。任何对象都要占用内存空间
创建对象分两部分:分配内存空间和初始化 -----------------------------
+(id)alloc :+表示这个方法属于类,只能类执行。id返回值类型,表示任意类型的对象,即创建好的对象
-(id)alloc: -表示这个方法是属于对象,只能对象执行,id返回值类型,表示初始化完成的对象
4、实例变量的可见度
常见的有三个:
@public 公开的 实例变量可以在类的内部和外部操作
@protected 受保护的 实例变量只能在该类及其子类中操作
@private 私有的 实例变量只能在该类的内部操作
类的内部: 也就是该类的 @implementation 和 @end 之间。
5、
继承
继承的上层(冒泡后边的)是:父类,下层(冒号前边的)是:子类。
继承是单向的,不能相互继承。
继承具有传递性:
A
继承于
B
,
B
继承于
C A
具有
B
和
C
的特征和行为
子类能继承父类所有的特征和行为
;
面向对象提供了基础语法,能得到简化代码。把公共方法和实例变量写在父类里,子类只需要写子自己独有的实例变量和方法即可
继承的优点:
继承既能保证类的完整,又能简化代码
特点:
1
、
OC
中只允许单继承
2
、没有父类的类,称为根类。
OC
的根类是
NSObject
3
、继承的内容:实例变量和方法
4、如果子类不满意父类的方法实现,可以重写(overwrite)父类的方法
继承中方法的执行
A
继承至
B B
继承至
C C
继承至
D D
继承至
NSObject
例:
[A eat];
执行过程
给
A
对象发送消息
eat
1
、查找本类中,实现或者重写
eat
方法。
2
、如果本类没有实现,就去上一级的父类去查找是否实现
eat
。
3、逐级查找eat方法,直到找到执行为止。
4、如果最后一个类也没有实现eat方法,程序会崩溃。