Определение класса
Определение класса является спецификацией класса объектов с помощью определенных файлов и синтаксиса. Определение класса минимально состоит из двух частей: открытый интерфейс и частная реализация. Вы обычно разделяете интерфейс и реализацию в два отдельных файла — заголовочный файл и файл реализации. Путем разделения общедоступных и половых органов кода Вы сохраняете интерфейс класса как независимая сущность.
Вы обычно называете интерфейс и файлы реализации после класса. Поскольку это включено в другие исходные файлы, имя интерфейсного файла обычно имеет .h
расширение, типичное для заголовочных файлов. Имя файла реализации имеет a .m
расширение, указывая, что это содержит исходный код Objective C. Например, MyClass
класс был бы объявлен в MyClass.h
и определенный в MyClass.m
.
Интерфейс
В интерфейсе Вы делаете несколько вещей:
Вы называете класс и его суперкласс.
Можно также указать любые протоколы, которым соответствует класс (см. Протокол).
Вы указываете переменные экземпляра класса.
Вы указываете методы и объявленные свойства (см. свойство Declared), которые доступны для класса.
В интерфейсном файле Вы сначала импортируете любые требуемые платформы. (Это часто будет справедливо Cocoa/Cocoa.h.
) Вы запускаете объявление самого интерфейса класса с директивой компилятора @interface
и закончите его с директивой @end
.
#import <Cocoa/Cocoa.h> |
@interface MyClass : SuperClass { |
int integerInstanceVariable; |
} |
+ (void)aClassMethod; |
- (void)anInstanceMethod; |
@end |
Реализация
Принимая во внимание, что Вы объявляете методы класса в интерфейсе, Вы определяете те методы (т.е. запишите код для реализации их) в реализации.
В интерфейсном файле Вы сначала импортируете любые требуемые заголовочные файлы. (Минимально это будет заголовочным файлом Вашего класса.) Вы запускаете реализацию класса с директивой компилятора @implementation
и закончите его с директивой @end
.
#import "MyClass.h" |
@implementation MyClass |
+ (void)aClassMethod { |
printf("This is a class method\n"); |
} |
- (void)anInstanceMethod { |
printf("This is an instance method\n"); |
printf("The value of integerInstanceVariable is %d\n", integerInstanceVariable); |
} |
@end |