Чтение онлайн

на главную - закладки

Жанры

Программирование на Objective-C 2.0
Шрифт:

Если процедура NSLog обнаруживает символы %i внутри строки символов, она автоматически выводит значение следующего переданного ей аргумента. Поскольку следующим аргументом для NSLog является переменная sum, ее значение автоматически выводится после текста «The sum of 50 and 25 is».

Теперь попытайтесь предсказать, что выведет программа 2.5. #import <Foundation/Foundation.h> int main (int argc, const char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int value 1, value2, sum; valuel = 50; value2 = 25; sum = valuel + value2; NSLog (@"The sum of %i and %i is %i", valuel, value2, sum); [pool drain]; return 0; }

Вывод

программы 2.5 The sum of 50 and 25 is 75

Второй оператор программы внутри main определяет три переменные с именами valuel, value2 и sum, и все они имеют тип int. Этот оператор эквивалентен трем операторам: int valuel; int value2; int sum;

После определения этих переменных программа присваивает значение 50 переменной valuel и значение 25 переменной value2. Затем вычисляется сумма этих переменных, и результат присваивается переменной sum.

Вызов процедуры NSLog теперь содержит четыре аргумента. Здесь тоже первый аргумент, который обычно называют строкой формата (format string), указывает системе, как выводить остальные аргументы. Значение value 1 должно быть выведено непосредственно после фразы «The sum of». Аналогичным образом, значения value2 и sum должны быть выведены в местах, указанных следующими двумя экземплярами символов %i в строке формата. Упражнения

Введите и выполните пять программ, описанных в этой главе. Сравните выходные результаты каждой программы с выводом, показанным после каждой программы.

Напишите программу, которая выводит следующий текст: In Objective-C, lowercase letters are significant, main is where program execution begins. Open and closed braces enclose program statements in a routine. All program statements must be terminated by a semicolon. (B Objective-C строчные буквы отличаются от прописных.

Выполнение программы происходит в main.

Операторы программы находятся между открывающей и закрывающей фигурными скобками.

Все операторы программы должны заканчиваться символом «точка с запя-той».

Какие результаты выведет следующая программа? #import <Foundation/Foundation.h> int main (int argc, const char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init; int i; i= 1; NSLog ((^"Testing..."); NSLog (@"....%Г, i); NSLog ((§>"...%i", i + 1); NSLog (@"..%Г\ i + 2); [pool drain]; return 0; }

Напишите программу, которая вычитает значение 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, являются методами для экземпляра). Определение количества типов автомобилей, выпускаемых изготовителем, применяется к классу, то есть это метод для класса.

Предположим, что у нас имеются два автомобиля, которые сошли со сбо-рочного конвейера и, казалось бы, идентичны: они имеют одинаковый салон, одинаковую окраску и т.д. Они могут одинаково запускаться, но поскольку каж-дый автомобиль используется его собственным владельцем, он приобретает свои уникальные характеристики — на одном автомобиле появится царапина, а другой проедет больше километров. Каждый экземпляр, или объект, содержит не только информацию о своих собственных характеристиках, полученных на заводе, но и свои текущие характеристики. Эти характеристики могут изменяться динамически. Когда вы ведете автомобиль, бензина в баке становится меньше, автомобиль загрязняется, шины изнашиваются.

Поделиться:
Популярные книги

Кодекс Охотника. Книга XXVI

Винокуров Юрий
26. Кодекс Охотника
Фантастика:
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXVI

Требую развода! Что значит- вы отказываетесь?

Мамлеева Наталья
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Требую развода! Что значит- вы отказываетесь?

Тринадцатый V

NikL
5. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый V

Третий Генерал: Том IV

Зот Бакалавр
3. Третий Генерал
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Третий Генерал: Том IV

Звездная Кровь. Экзарх III

Рокотов Алексей
3. Экзарх
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Экзарх III

Кровь на клинке

Трофимов Ерофей
3. Шатун
Фантастика:
боевая фантастика
попаданцы
альтернативная история
6.40
рейтинг книги
Кровь на клинке

Темный Лекарь

Токсик Саша
1. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь

Я уже князь. Книга XIX

Дрейк Сириус
19. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я уже князь. Книга XIX

Контртеррор

Валериев Игорь
6. Ермак
Фантастика:
альтернативная история
5.00
рейтинг книги
Контртеррор

Неверный

Тоцка Тала
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Неверный

Личный аптекарь императора. Том 2

Карелин Сергей Витальевич
2. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Личный аптекарь императора. Том 2

Сильнейший Столп Империи. Книга 1

Ермоленков Алексей
1. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 1

Я – Легенда 2: геном хищника

Гарцевич Евгений Александрович
2. Я - Легенда!
Фантастика:
боевая фантастика
рпг
фантастика: прочее
попаданцы
5.00
рейтинг книги
Я – Легенда 2: геном хищника

Я - злодейка в дораме. Сезон второй

Вострова Екатерина
2. Выжить в дораме
Фантастика:
уся
фэнтези
сянься
попаданцы
5.00
рейтинг книги
Я - злодейка в дораме. Сезон второй