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

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

Жанры

Программирование на 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;

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

Антимаг

Гедеон Александр и Евгения
1. Антимаг
Фантастика:
фэнтези
6.95
рейтинг книги
Антимаг

Абсурдистан

Штейнгарт Гари
Проза:
современная проза
5.00
рейтинг книги
Абсурдистан

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

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

Сапер. Том IV

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

Викинг

Мазин Александр Владимирович
1. Викинг
Приключения:
исторические приключения
8.92
рейтинг книги
Викинг

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

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

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

Винокуров Юрий
3. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Кодекс Охотника. Книга III

Локки 10. Потомок бога

Решетов Евгений Валерьевич
10. Локки
Фантастика:
фэнтези
юмористическое фэнтези
героическая фантастика
боевая фантастика
5.00
рейтинг книги
Локки 10. Потомок бога

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

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

На гребне обстоятельств

Шелег Дмитрий Витальевич
7. Живой лед
Фантастика:
фэнтези
5.25
рейтинг книги
На гребне обстоятельств

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

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

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

Афганский рубеж 2

Дорин Михаил
2. Рубеж
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Афганский рубеж 2

Я уже царь. Книга XXIX

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