类

概念

对一类物体的抽象描述 可以看出 类 是一个抽象的存在,如:人、动物、电脑。他们都只是一个名称而已,没有具体的指向某个物体。

在Xcode中创建OC工程

1.打开Xcode,选择Create a new Xcode project Class - 图1 2.选择创建一个OS X的Application -> Commad Line Tool工程 Class - 图2 3.填写相关工程信息 Class - 图3 4.选择项目保存路径,然后创建

main.m

以前创建的C语言程序都是已.c与.h结尾的,但是OC是.m与.h结尾。创建完工程以后,系统在main.m中做了些事情,我们一一解释下: 1. #import // 引入头文件 2. 3. int main(int argc, const char * argv[]) { // main函数 4. @autoreleasepool { // 自动释放池,将在内存管理章节中讲到 5. // insert code here... 6. NSLog(@"Hello, World!"); // NSLog输出,字符串使用@"" 7. } 8. return 0; // 返回值 9. }

其中NSLog也支持像printf一样使用占位符来输出,在NSLog进行输出的时候,整型占位符除了%d还可以是%i。 1. NSLog(@"输出一个整型:%i, 浮点型:%f", 10, 10.1);

#import

OC中有三种引入文件的方式,分别是:#import,#include,@class,关于他们之间的区别,详见:

include、#import和@class区别。

在Xcode中创建类

1.选中工程目录中的main.m,然后快捷键Command+N(表示在main.m的下面创建一个新文件); 2.选择OS X -> Source的Cocoa Class Class - 图4 3.填写类名,并将NSObject作为父类(注意:类名首字母大写,并采用驼峰命名) Class - 图5 4.保存路径不用修改,直接创建 5.创建之后的工程目录为: Class - 图6

类文件的分析

类文件分为两个.h文件与.m文件 .h为类的声明文件,@interface表示类的接口,:表示继承关系。

@interface Person : NSObject的含义为:声明了一个继承自NSObject类的Person类 .m为类的实现文件,@implementation表示类的实现。 @implementation Person的含义为:Person类的实现 两个关键字都必须和@end成对出现,表示声明/实现的结束。 1. #import 2. 3. @interface Person : NSObject 4. 5. // 内容写在@interface与@end之间 6. 7. @end

  1. #import "Person.h"
    2.   3. @implementation Person
    4.   5. // 内容写在@implementation与@end之间
    6.   7. @end

类的简介

关于类的简介,有几个概念不得不提: 1. OC只支持单继承(子类只能拥有一个父类); 2. NSObject几乎是所有类的基类(归根结底的那个类); 3. 子类能继承父类的公开方法与属性;

成员变量的定义

之前讲到了结构体中变量的定义,类中成员变量的定义如下(注意:是在.h文件中定义): 1. @interface Person : NSObject { 2. 3. NSString *_name; // NSString是OC中的字符串 4. NSInteger _age; // NSInteger是OC中的整型,64位下是long,其他情况下是int 5. float _height; 6. } 7. 8. @end

在写代码的时候,应该时刻注意编码规范。在Cocoa编码规范中,成员变量在定义时,名称前需要加上_下划线。 在上面这个例子中,因为NSString是OC中的类,name为对象,所以需要写成*_name,而NSInteger其实是typedef long NSInteger;基本类型,所以写为_age。