Шрифт:
Напишите программу, которая вычитает значение 15 из 87 и выводит результат вместе с сообщением.
Укажите синтаксические ошибки в программе, затем введите и выполните исправленную программу, чтобы убедиться, что выявлены все ошибки. #import <Foundation/Foundation.h> int main (int argc, const char *argv[]); { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; INT sum; /* COMPUTE RESULT // sum = 25 + 37- 19 / DISPLAY RESULTS / NSLog (@'The answer is %i', sum); [pool drain]; return 0; }
Какие результаты выведет следующая программа? #import <Foundation/Foundation.h> int main (int argc, const char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int answer, result; answer = 100; result = answer - 10; NSLog (@"The result is %i\n", result + 5); [pool drain]; return 0; }
Глава 3. Классы, объекты и методы
В этой главе вы узнаете о ключевых концепциях в объектно-ориентированном программировании, начнете работать с классами в Objective-C и познакомитесь с основной терминологией. Мы опишем только базовые терминов, чтобы не перегружать вас излишней информацией. Подробное и точное определение терминов см. в «Словаре» (приложение А). 3.1. Понятие объекта
Объект (object) — это определенная «вещь». В объектно-ориентированном про-граммировании объект — это и вещь, и действия, которые с ней можно делать. Этим объектно-ориентированные языки программирования отличаются, на-пример, от языка С, который является процедурным языком. В С сначала думают о том, что хотят сделать, и только затем заботятся об объектах, что почти противоположно объектно-ориентированному подходу.
Рассмотрим пример из повседневной жизни. Предположим, у вас есть авто-мобиль. Это объект, которым вы владеете. Это не какой-либо произвольный автомобиль; это определенный автомобиль, который собран на заводе в Детройте или в Японии, или где-то еще. У него есть идентификационный номер (vehicle identification number, VIN), который уникально идентифицирует этот автомобиль.
В объектно-ориентированной терминологии ваш автомобиль является эк-земпляром (instance) автомобиля. Развивая эту терминологию, автомобиль (саг) — имя класса, из которого этот экземпляр был создан. При выпуске каждого нового автомобиля создается новый экземпляр данного класса автомобилей, и каждый экземпляр автомобиля называется объектом.
Ваш автомобиль может иметь серебристую окраску, может быть с откидным или жестким верхом, и т.д. Вы выполняете определенные действия со своим автомобилем — водите его, заправляете бензином, моете, выполняете техническое обслуживание и т.д.
Действия, приведенные в таблице 3.1, можно выполнять с вашим автомобилем и с любыми другими автомобилями. Например, ваша сестра водит свой автомобиль, моет его, заправляет его бензином и т.д. Объект Что вы делаете с ним Ваш автомобиль Водите. Заправляете бензином. Моете. Выполняете техническое обслуживание. 3.2. Экземпляры и методы
Уникальная реализация класса - это экземпляр. Действия, которые выполняются над экземпляром, называются методами (method). В некоторых случаях метод может применяться к экземпляру класса или к самому классу. Например, мытье автомобиля применяется к экземпляру (все методы, перечисленные в таблице 3.1, являются методами для экземпляра). Определение количества типов автомобилей, выпускаемых изготовителем, применяется к классу, то есть это метод для класса.
Предположим, что у нас имеются два автомобиля, которые сошли со сбо-рочного конвейера и, казалось бы, идентичны: они имеют одинаковый салон, одинаковую окраску и т.д. Они могут одинаково запускаться, но поскольку каж-дый автомобиль используется его собственным владельцем, он приобретает свои уникальные характеристики — на одном автомобиле появится царапина, а другой проедет больше километров. Каждый экземпляр, или объект, содержит не только информацию о своих собственных характеристиках, полученных на заводе, но и свои текущие характеристики. Эти характеристики могут изменяться динамически. Когда вы ведете автомобиль, бензина в баке становится меньше, автомобиль загрязняется, шины изнашиваются.
Применение метода к объекту может влиять на состояние (state) этого объекта. Если метод определяется как «заправить мой автомобиль бензином», то после выполнения этого метода будет заполнен бензобак вашего автомобиля. Таким образом, метод повлияет на состояние бака автомобиля.
Объекты являются уникальными представителями класса, и каждый объект содержит некоторую информацию (данные), которые обычно являются частными для этого объекта. Методы — это средства доступа и изменения этих данных.
Язык программирования Objective-C имеет следующий синтаксис для при-менения методов к классам и экземплярам: [ Класс-или-Экземпляр метод ];
В этом синтаксисе после левой прямоугольной скобки следует имя класса или экземпляра этого класса, а затем (после одного или нескольких пробелов) — ме-тод, который нужно выполнить. В конце ставится правая прямоугольная скобка и завершающая точка с запятой. Если вы обращаетесь к классу или экземпляру для выполнения некоторого действия, можно сказать, что вы отправляете ему сообщение (message); это сообщение принимает получатель (receiver). По-этому показанный выше формат можно описать следующим образом: [ получатель сообщение ] ;