面向对象
因为Objective-C是面向对象的程序设计语言,它提供了定义类、成员变量和方法的基本功能。
关于Objective-C的三大特征:封装、继承、多态。
封装
封装就是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。通常对一个类或者对象实现良好的封装后,可以实现以下目的:
1.隐藏类的实现细节。
2.让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对成员变量的不合理访问。
3.可进行数据检查,从而有利于保证对象信息的完整性。
4.便于修改,提高代码的可维护性。
为了实现良好的封装,需要从以下两个方面考虑:
1.将对象的成员变量和实现细节隐藏起来,不允许外部直接访问。
2.把方法暴露出来,让方法来控制对这些成员变量进行安全的访问和操作。
因此,封装实际上有两方面的含义:把该隐藏的隐藏起来,把该暴露的暴露出来。这两个方面都需要通过使用Objective-C提供的访问控制符来实现。
继承
Objective-C的继承通过父类的语法来实现,实现继承的类被称为子类,被继承的类称为父类,有的也称其为基类、超类。父类和子类的关系是一种一般和特殊的关系。例如,奔驰和汽车的关系,奔驰继承了汽车,奔驰是汽车的子类,奔驰是一种特殊的汽车。
因为子类是一种特殊的父类,因此父类的范围总比子类的范围大,所以可以说父类就是大类,子类是小类。
Objective-C里子类继承父类的语法格式为:
@interface SubClass : SuperClass
{
//成员的变量定义
}
//方法定义部分
@end
从上面的代码我们可以看出来,定义子类的方法很简单,只需要在原本的定义上增加“:SuperClass”即可,即表明该子类继承了SuperClass类。
继承关系的本质就是一种由一般到特殊的关系,子类继承父类,子类是父类的一种特殊的关系。从这个意义上来看,使用继承来描述子类与父类好像不是特别恰当,可能更适合用扩展来描述。因此这个说法更准确例如:苹果与水果的关系就为Apple类扩展了Fruit类。
当子类扩展为父类时,子类可以通过继承从父类得到以下东西:
1.全部成员变量。
2.全部方法(包括初始化方法)。
总结
关于Objective-C的两大特征封装和继承,首先这两种特征都是为了方便与安全。封装就是将需要隐藏的信息隐藏起来,将访问方法暴露出来,这样即可使用户可以访问信息,又可以让信息得到一定的保护。而继承就是通过子类的定义,可以继承某一种父类的数据,继承的东西有全部的成员以及全部的方法,这样可以在子类直接进行访问。
本文探讨了Objective-C中封装和继承的核心概念,阐述如何通过封装隐藏对象状态并提供安全访问,以及如何通过继承实现代码复用和继承特性。

被折叠的 条评论
为什么被折叠?



