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

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

Жанры

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

Принято начинать имена классов с прописной буквы, хотя это не обязатель-ное требование. Это позволяет человеку, читающему программу, отличать име-на классов от других типов переменных по первому символу имени. Выбор имен

В главе 2 мы использовали несколько переменных для хранения целых значений. Например, в программе 2.4 переменная sum использовалась для сохранения результата сложения двух целых чисел, 50 и 25.

В языке Objective-C в переменных сохраняются не только данные, но и их типы, поскольку нужное объявление переменной выполняется до того, как она используется в программе. Переменные можно использовать для хранения чисел с плавающей точкой, символов и даже объектов (точнее, ссылки на объекты).

Правила формирования имен достаточно просты: имена должны начинаться с буквы или символа подчеркивания (_), и затем может следовать любое со-четание букв (прописных или строчных), символов подчеркивания или цифр от 0 до 9. Ниже приводятся примеры допустимых имен:

sum

pieceFlag

myLocation

numberOfMoves

_sysFlag

ChessBoard

Следующие имена недопустимы по указанным выше причинам:

sum$value $ — недопустимый символ

piece flag — внутренние пробелы не допускаются

ЗSpencer — имена не могут начинаться с цифры

int — это зарезервированное слово

Такие имена, как int, нельзя использовать в качестве имени переменной, поскольку они имеют специальное применение в компиляторе Objective-C. Их называют зарезервированными именами (reserved пате) или зарезервированными словами (reserved word). Любое имя, которое имеет специальный смысл для компилятора Objective-C, нельзя использовать как имя переменной. В приложе-нии В приводится полный список таких зарезервированных имен.

Не забывайте, что прописные и строчные буквы в Objective-C различаются. Например, sum, Sum и SUM — это разные переменные. Как уже говорилось, имя класса рекомендуется начинать с прописной буквы. Имена переменных экзем-пляров, объектов и методов обычно начинают со строчных букв. Для удобства чтения внутри имен используют прописные буквы, чтобы показать начало нового слова, как в следующих примерах:

AddressBook — это может быть имя класса;

currentEntry — это может быть объект;

current_entry — некоторые программисты используют символ подчеркивания как разделитель слов;

addNewEntry — это может быть имя метода.

Подбирайте имена, которые отражают назначение соответствующей пере-менной или объекта. Аналогично операторам комментария, продуманные имена могут намного повысить удобочитаемость программы, и приложенные усилия окупятся на этапах отладки и документирования. Практика показывает, что за-дача документирования становится намного проще, поскольку программа ста-новится самоочевидной, не требующей пояснений.

Рассмотрим еще раз секцию @interface из программы 3.2: //---- @interface section ---- @interface Fraction: NSObject { int numerator; int denominator; } -(void) print; -(void) setNumerator: (int) n; -(void) setDenominator: (int) d; @end

Имя нового класса — Fraction, его родительский класс — NSObject. (Подробнее о родительских классах см. главе 8.) Класс NSObject определен в файле NSObject.h, который автоматически включается в программу, когда вы импортируете Foundation, h. Переменные экземпляров

В секции «объявления-членов» указывается, какие типы данных содержатся в классе Fraction, и имена этих типов данных. Эта секция находится внутри соб-ственной пары фигурных скобок. Для класса Fraction эти объявления указывают, что объект Fraction содержит два целых элемента, которые называются numerator (числитель) и denominator (знаменатель): int numerator; int denominator;

Члены, которые объявляются в этой секции, называются переменными эк-земпляров. Каждый раз, когда вы создаете новый объект, создается новый уни-кальный набор переменных экземпляра. Поэтому, если у вас имеются два объекта Fraction, один из которых называется fracA, а второй — fracB, каждый из них содержит свой собственный набор переменных экземпляра. Таким образом, fracA и fracB будут иметь свои собственные числитель и знаменатель (numerator и denominator). Система Objective-C автоматически следит за этим, и это -одно из наиболее важных преимуществ работы с объектами. Методы класса и методы экземпляра

Определим методы для работы с дробями. Нам нужно задавать для дроби опре-деленное значение. Поскольку у нас нет непосредственного доступа к внутрен-нему представлению дроби (иначе говоря, непосредственного доступа к пере-менным экземпляра), нужно написать методы, которые задают числитель и знаменатель, и написать метод с именем print, который будет выводить значение дроби. Объявление метода print в файле интерфейса выглядит следующим образом: -(void) print;

Знак «минус» (-) указывает компилятору Objective-C, что данный метод яв-ляется методом экземпляра. Знак «плюс» (+) указывает на метод класса. Метод класса выполняет определенную операцию над самим классом, например, создает новый экземпляр данного класса. Это аналогично производству нового автомобиля в том смысле, что автомобиль (саг) — это класс, и создание нового автомобиля является методом класса.

Метод экземпляра выполняет определенную операцию для определенного экземпляра класса, например, задает его значение, читает его значение, выводит на экран его значение и т.д. Возвращаемые значения

При объявлении нового метода вы должны сообщить компилятору Objective- С, будет ли метод возвращать значение, и если да, то указать тип возвращаемого значения. Для этого нужно заключить тип возвращаемого значения в круглые скобки после ведущего символа «минус» или «плюс». Приведенное ниже объявление указывает, что метод экземпляра с именем retrieveNumerator возвращает целое значение. -(int) retrieveNumerator;

В следующей строке объявляется метод, который возвращает значение с двойной точностью. (Подробнее об этом типе данных см. в главе 4.) -(double) retrieveDoubleValue;

Значение возвращается из метода с помощью оператора Objective-C return аналогично значению, возвращаемому из main в примерах предыдущей програм-мы. Если метод не возвращает никакого значения, нужно указать это с помощью типа void, как в следующем примере: -(void) print;

Это объявление метода экземпляра print, этот метод не возвращает никакого значения. В подобных случаях вам не нужно выполнять оператор return в конце метода. Можно выполнить return без указания какого-либо значения: return;

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

Дело чести

Вебер Дэвид Марк
12. Хонор Харрингтон
Фантастика:
космическая фантастика
7.93
рейтинг книги
Дело чести

Изгнание

Фейхтвангер Лион
Проза:
проза прочее
6.25
рейтинг книги
Изгнание

Гримуар темного лорда VII

Грехов Тимофей
7. Гримуар темного лорда
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.25
рейтинг книги
Гримуар темного лорда VII

Егерь. Охота

Скиба Николай
6. Зверолов
Фантастика:
рпг
фэнтези
фантастика: прочее
попаданцы
6.60
рейтинг книги
Егерь. Охота

Книга теней

Риз Джеймс
95. Книга-загадка, книга-бестселлер
Проза:
современная проза
6.10
рейтинг книги
Книга теней

Избранные труды

Вацуро Вадим Эразмович
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Избранные труды

Я все еще князь. Книга XXI

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

Байка о том, как Лиса и Красная Королева о рае мечтали

Клауд Чак
1. Байки безумца Клауда
Фантастика:
юмористическая фантастика
5.00
рейтинг книги
Байка о том, как Лиса и Красная Королева о рае мечтали

Бояръ-Аниме. Газлайтер. Том 30

Володин Григорий Григорьевич
30. История Телепата
Фантастика:
альтернативная история
аниме
фэнтези
6.67
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 30

Газлайтер. Том 4

Володин Григорий Григорьевич
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 4

Фамильяр

Романов Андрей Вениаминович
Фантастика:
фэнтези
7.38
рейтинг книги
Фамильяр

Проводник Отсюда (сборник)

Лукьяненко Сергей Васильевич
Фантастика:
научная фантастика
8.00
рейтинг книги
Проводник Отсюда (сборник)

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.50
рейтинг книги
Вечный. Книга I

Последний реанорец. Том IV

Павлов Вел
3. Высшая Речь
Фантастика:
фэнтези
5.20
рейтинг книги
Последний реанорец. Том IV