Objective-C学习笔记中OOP之复合、存取方法是本文哟啊介绍的内容,一谈起OOP,就会想起教科书式的OOP概念:封装、继承、多态,下面简答的来谈谈他们各自的区别。
粗浅的解释封装就是对数据进行隐藏;继承就是子类继承父类(class)或接口(interface)的方法和属性,并实现代码复用;多态就是重载和重写。这样的解释仍仅仅只是面向对象的基本特征,很浅显,根本无法让人知道如何去思考和设计面向对象编程。来看本文介绍的OOP的使用。
if(self = [ super init] { …
若要超类可以完成所需的一次性初始化,需要调用[super init]。init方法返回的值(id型数据,即泛型对象指针)描述了被初始化的对象。
将[super init]的结果赋给self是Objective-C的标准惯例。这么做是为了防止超类在初始化过程中返回的对象不同于原先创建的对象。
- (id) init // 初始化对象
{
if (self = [super init]) {
// 初始化内容
}
return self;
}
存取方法
存取方法(accessor method)是用来读取或改变对象特定属性的方法。
setter方法:术语修改方法(mutator)是用来改变对象状态的方法。
getter方法:getter方法为使用对象的代码提供了读取对象属性的途径。
注意:在对其他对象的属性进行操作时,应该始终使用对象所提供的存取方法,永远不要直接改变其他对象属性的数值。例如main()不应通过 car->engine 直接改变engine属性的值,而应使用setter方法进行更改。
命名规范:setter方法根据它所更改的属性的名称来命名,并加上前缀"set",getter方法则仅仅根据其返回的属性的名称来命名(不加get前缀)。 |
|