1.3 创办一个类

1.3 创建一个类

1、问题

面向对象的程序员喜欢能够将功能封装进对象中。此时,就需要定义一个类来封装属性和行为。

 

2、解决方案

Objective-C中的类需要有接口和实现定义。尽管不是绝对必要,但通常要将接口和实现分开放到不同的文件中。这2个文件的名字是一样的,但接口文件的扩展名是.h。

类文件的扩展名是.m。

 

要使用一个类,你必须将该类头文件导入到代码中。

 

3、原理

假如要定义一个Car类。

 

在Car.h中,放的是Car类的接口。类接口必须以@interface开头,以@end结尾。在这2者之间定义的就是类的属性和方法。

#import <Foundation/Foundation.h>

@interface Car : NSObject // 意思是说你的car是NSObject的一个子类,NSObject是Objective-C的根对象。

@end

 

在Car.m中,要先导入Car.h,然后用@implementation声明正在实现一个自定义类。

#import "Car.h"

@implementation Car

@end

 

要使用你的类,就需要导入Car.h,然后从该类实例化一个对象。要实例化一个对象,就要发送2条消息:alloc和init。它们都来自超类NSObject。

Car *car = [[Car alloc] init];

 

4、代码

//==============Car.h

#import <Foundation/Foundation.h> 

 

@interface Car : NSObject 

 

@end

 

//===============Car.m

#import "Car.h" 

 

@implementation Car 

 

@end

 

//==================main.m

#import "Car.h" 

 

int main (int argc, const char * argv[]){ 

        @autoreleasepool { 

                Car *car = [[Car alloc] init]; 

                NSLog(@"car is %@", car);

        } 

        return 0; 

}

 

5、运行代码

clang -fobjc -framework Foundation Car.m main.m -o maccommandlineapp