版权所有:AisideChina
本博客将在今后陆续进行本书的连载,敬请关注!
更多内容请大家购买正版《iPhone应用程序开发指南(基础篇)》
3.4 Objective-C中的面向对象
面向对象编程(Object-Oriented Programming,简称OOP)如今已不再是什么新鲜的术语了。Objective-C就是一种面向对象编程语言。
在Objective-C中创建一个新类时,通常先要在一个与类名相同的.h文件中,使用关键字@interface来声明该类;然后在与类名相同的一个.m文件中,使用关键字@implement来实现该类。
本节将会对如何在Objective-C中声明和实现一个类进行讲解。
类的声明
在Objective-C中声明一个类时,需要使用@interface关键字,它类似C++中的class关键字。声明一个类的格式如下:
=================================================
代码3.4 Objective-C中类的声明 |
@interface ClassName : SuperClass {
@private
vType variable1;
……
}
+ (rType)classMethodWithArg1: (arg1Type)arg1,
andArg2: (arg2Type)arg2;
- (rType)instanceMethodWithArg1:(arg1Type)arg1
andArg2:(arg2Type)arg2;
@end
================================================
类的实现
对一个类进行了声明之后,还必须要实现该类的方法才可以创建对象。
===================================================
代码3.5 Objective-C中类的实现 |
@implement ClassName
Methods Implementation
……
@end
===================================================
在@implement与@end之间实现类的各个方法,方法可以是从父类继承下来的,也可以是自己声明的。
(具体讲解与实例请参见《iPhone应用程序开发指南(基础篇)》一书)
初始化方法
前面我们讲到过要创建一个可用的对象,在Objective-C中需要两个步骤来完成:创建对象与初始化对象。创建对象即我们前面讲到过的alloc方法,alloc方法负责为该类对象分配一个足够大的内存,然后将整块内存区域全部初始化为0,也就是使被创建的对象不包含任何数据:比如int类型变量全被初始化为0,float类型变量全被初始化为0.0,指针类型全被初始化为nil等。
创建之后便可以调用初始化函数来对对象进行初始化。由于任何Objective-C类都是NSObject类的子类,所以它们都从NSObject类中继承了初始化方法init,但该方法对于各子类基本没有任何作用与意义,子类需要根据自己类的具体情况来重写初始化方法,从而达到想要的初始化效果。
但要通过初始化方法来对对象进行初始化,也并不是一定要使用继承自NSObject的init方法,通常情况下对对象进行初始化时往往需要一些参数。如NSString类的一个初始化方法:initWithString: (NSString *)aString,它表示要接收一个字符串aString,并用该字符串来对调用该方法的NSString对象进行初始化。
Tips:事实上,初始化方法与一般方法没有本质上的区别,它只是在名称上添加“init”字样来表示这是一个初始化方法。它将负责为类中某些成员变量赋值。我们可以将初始化方法理解为该类的一个特殊的成员方法。 |
对于NoteClass,我们可以在NoteClass.h文件中添加下面的一个初始化方法来对NoteClass类的对象进行初始化:
- (id)initWithDate:(NSString *)aDate andContent:(NSString *)aContent;
在NoteClass.m文件中,该方法的实现如下:
===================================================
代码3.9 -(id)initWithDate: andContent:的实现 |
- (id)initWithDate:(NSString *)aDate
andContent:(NSString *)aContent {
if(self = [super init]){
[self setDate:aDate];
[self setContent:aContent];
}
return self;
}
====================================================
(具体讲解与实例请参见《iPhone应用程序开发指南(基础篇)》一书)
属性
实现一个类时,还要为每一个变量实现其访问器,这是一个相当繁琐的工作。事实上,在Objective-C 2.0发布后,我们便可以很方便的使每一个变量自动生成其访问器,并使用点操作符“.”来实现对变量的存取操作。
要实现这个功能,可以将NoteClass.h文件修改如下:
===================================================
代码3.14 NoteClass.h文件 |
#import <Cocoa/Cocoa.h>
@interface NoteClass : NSObject {
NSString *date;
NSString *content;
}
@property (nonatomic, retain) NSString *date;
@property (nonatomic, retain) NSString *content;
– (id)initWithDate:(NSString *)aDate andContent:(NSString *)aContent;
– (id)initWithDate:(NSString *)aDate;
– (void)setDate:(NSString *)aDate;
– (NSString *)date;
– (void)setContent:(NSString *)aContent;
– (NSString *)content;
– (void)showNote;
@end
==================================================
在上面的代码中注释掉了date变量与content变量的访问器方法,取而代之的是@property (nonatomic,retain) NSString *date与@property (nonatomic, retain) NSString *content。
在Objective-C中,@property用来设置成员变量的读写属性(readwrite/readonly),赋值语义(assign/retain/copy)以及对于多线程的支持atomicity(nonatomic)。并且每组的各个选项只可以出现一个或者不出现,比如这个例子中的@property (nonatomic, retain) NSString *date,表示date变量不支持多线程,且在被赋值时将自动调用release方法来释放对旧值的所有权,然后调用retain方法申请对新值的所有权。下表对@property的各个选项进行了总结:(具体讲解与实例参见《iPhone应用程序开发指南(基础篇)》一书)。
相关推荐
这本书的中文版使得更多的中国开发者能够轻松掌握iOS应用开发的技术和技巧。 在iPhone应用程序编程中,首先需要了解的是Objective-C或Swift编程语言。Objective-C是苹果长期以来的官方开发语言,而Swift则是近年来...
iPhone应用开发指南还强调了开发过程中所需的各类文档和资料,包括API参考、编程指南以及各种开发工具和技术资源。这些文档可以帮助开发者学习如何使用iOS的框架和API来实现特定的功能,比如用户界面设计、数据存储...
- **iPhone 开发指南**:介绍了 iPhone 开发过程中的重要信息,包括设备配置、使用 Xcode 进行编译、运行和测试软件等方面。 - **Cocoa 基本原理指南**:涵盖了 iPhone 应用程序开发中常用的设计模式和最佳实践,...
综上所述,“iPhone应用程序编程指南(中文版)”不仅是一份详尽的开发指南,也是学习和掌握iOS开发不可或缺的重要资料。通过遵循这份指南中的建议和指导,开发者可以更好地构建出高质量的iPhone应用程序。
《iPhone应用程序开发指南.pdf》是一本深入探讨iPhone应用开发的专业书籍,主要针对想要在iOS平台上构建应用程序的开发者。这本书详细介绍了从零开始学习iOS开发所需的知识点,包括Swift编程语言、Xcode集成开发环境...
iPhone应用程序开发指南,Chapter01 iPhone开发前的准备;Chapter02 开发工具介绍;Chapter03 Objective-C基础;Chapter04 几个重要的Cocoa类;等15章内容
### iPhone应用程序开发指南知识点概述 #### 一、引言与目标读者 - **目标读者**:本指南旨在为iOS开发者提供全面的技术指引,适合不同经验水平的开发者阅读。 - **先决条件**:具备一定的编程基础,特别是对...
- **必读文档**:开发者在开始开发iPhoneOS应用程序前,应阅读iPhone开发指南,了解开发过程中的关键信息,以及如何使用Xcode等工具进行编译、运行和测试软件。 - **设计模式介绍**:Cocoa基本原理指南深入探讨了...
综合来看,《iOS应用程序编程指南》是一份综合性的开发文档,它不仅涵盖iOS应用开发的基础知识,还包括了高级技术,如视图控制器的使用、数据管理等。通过遵循这些指南,开发者可以构建出稳定、高效且用户体验良好的...
- **iPhone开发指南**:详细介绍iPhone开发流程中的工具配置、设备配置、软件编译、运行测试等方面。 - **Cocoa基本原理指南**:深度讲解Cocoa框架的基础理论,适合初学者入门。 总之,本指南全面覆盖了从基础预备...
- **iPhone开发指南**:详细介绍开发过程中的工具配置、设备设置、软件构建、运行和测试等内容。 - **Cocoa基本原理指南**:提供关于iPhone应用程序开发中设计模式的基础知识。 - **其他重要文档**:建议开发者阅读...
### iPhone应用程序编程指南知识点 #### 一、介绍 **谁应该阅读本文?** - 对于希望为iPhone开发应用程序的专业开发者来说,本指南是一份必备参考资料。 - 适用于那些熟悉编程语言如Objective-C或Swift,并对iOS ...
本书的标题为《iPhone应用程序开发攻略之iPhone特色传感器应用》,从这个标题我们可以看出,这本书是专门针对iPhone应用程序的开发者所编写的一本关于iPhone特色传感器的应用开发教程。iPhone特色传感器包括但不限于...
《软件创富密码:iPhone应用程序开发攻略之深入浅出Objective-C2.0(适用于ios4)》系统地介绍了关于使用Objective-C2.0开发iPhone应用程序的基础知识,涵盖各种开发工具的操作技巧、框架(Framework)内部的工作原理...