Вход/Регистрация
Программирование на Objective-C 2.0
вернуться

Кочан Стивен

Шрифт:

Примечание. Вскоре вы познакомитесь с удобным средством Objective-C 2.0, которое позволяет автоматически создавать методы-установщики и методы- получатели.

Мы должны указать, что метод с именем new объединяет действия методов alloc и init. Поэтому следующую строку можно использовать для выделения па-мяти и инициализации нового объекта Fraction: Упражнения

Какие из следующих имен не являются допустимыми? Почему? Int playNextSong 6_05 _calloc Хх alphaBetaRoutine clearScreen_1312 z Reinitialize _ A$

По аналогии с автомобилем, рассмотрите объект, который вы используете каждый день. Определите класс для этого объекта и напишите пять действий для этого объекта.

Для списка из упражнения 2 используйте следующий синтаксис, чтобы переписать ваш список в указанном формате: [экземпляр метод];

Предположим, что у вас, помимо автомобиля, есть лодка и мотоцикл. На-пишите список действий, которые вы можете выполнять с каждым из них. Есть ли какое-то перекрытие между этими действиями?

В соответствии с вопросом 4 предположим, что у вас есть класс с именем Vehicle (Средство передвижения) и объект с именем myVehicle, которым может быть Саг (Автомобиль), Motorcycle (Мотоцикл) или Boat (Лодка). Предположим, вы написали следующее: [myVehicle prep]; [myVehicle getGas]; [myVehicle service]; Видите ли вы преимущества в применении действия к объекту, который относится к одному из нескольких классов?

В процедурном языке, таком как С, вы продумываете действия и затем пишете код для применения этого действия к различным объектам. Если взять пример автомобиля, то вы могли бы написать на С процедуру мытья средства передвижения и затем внутри этой процедуры написать код для мытья автомобиля, мытья лодки, мытья мотоцикла и т.д. Если принять этот про-цедурный подход и затем добавить новый тип средства передвижения (см. предыдущее упражнение), будет ли он иметь преимущества или недостатки по сравнению с объектно-ориентированным подходом?

Определите класс с именем XYPoint для декартовых координат (х, у), где х и у — целые значения. Определите методы, позволяющие по отдельности задавать координаты точки и считывать их значения. Напишите программу на Objective-C, чтобы реализовать этот новый класс.

Глава 4. Типы данных и выражения

В этой главе мы рассмотрим базовые типы данных и основные правила форми-рования арифметических выражений в Objective-C. 4.1. Типы данных и константы

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

В языке программирования Objective-C имеются три основных типа данных: float, double и char. Переменную, которая объявлена с типом float, можно ис-пользовать для хранения чисел с плавающей точкой (то есть значений, имеющих дробную часть). Тип double тоже хранит числа с плавающей точкой, но с двойной точностью. Тип данных char можно использовать для хранения одного символа, например, буквы «а», цифры «6», знака «;» (подробнее об этом см. ниже).

В Objective-C любое число, символ или строка символов называется констан-той (constant). Например, число 58 является целым значением-константой. Строка @"Programming in Objective-C is fun.\n" — это пример объекта-константы со строкой символов. Выражение, содержащее только значения-константы, называется выражением-константой, или константным выражением (constant expression). Следующее выражение является константным, поскольку каждый из членов этого выражения является константой: 128 + 7-17

Но если i объявлена как переменная целого типа, то это выражение уже не будет константным: 128 + 7-i Тип int

В Objective-C целая константа состоит из одной или нескольких цифр. Знак «ми-нус» перед цифрами указывает, что это отрицательное значение. 158, -10 и 0 — примеры целых констант. Между цифрами не допускаются пробелы, и значения между тройками цифр нельзя разделять запятыми. (То есть число 12,000 должно быть записано как 12000.)

В Objective-C имеется два специальных формата записи целых констант с основанием, отличным от 10. Если первая цифра целого значения равна 0, это значение считается восьмеричным, octal (по основанию 8). В этом случае остальные цифры должны быть допустимыми восьмеричными цифрами от 0 до 7. Например, чтобы представить в Objective-C восьмеричное значение 50 (эквива-лентное десятичному значению 40), используется форма записи 050. Восьмеричная константа 0177 эквивалентна десятичному значению 127(1 x64 + 7x8 + 7). Целое значение можно вывести на экран в восьмеричной записи, вызвав NSLog и указавы символы формата %о в строке форматирования. Значение выводится в восьмеричной записи без ведущего нуля. Символы формата %#о выводят ведущий нуль перед восьмеричным значением.

Если перед целой константой ставятся 0 и буква х (прописная или строчная), значение считается шестнадцатеричным (по основанию 16). После буквы х следуют цифры шестнадцатеричного значения (это цифры 0-9 и буквы a-f (или A-F). Буквы представляют, соответственно, десятичные числа от 10 до 15. На-пример, чтобы присвоить шестнадцатеричное значение FFEF0D целой пере-менной с именем rgbColor, можно использовать оператор: rgbColor = OxFFEFOD;

Символы форматирования %х выводят значение в шестнадцатеричном фор-мате без ведущих символов Ох и с использованием строчных букв a-f. Чтобы вывести значение с ведущими символами Ох, нужно использовать символы фор-матирования %#х: NSLog ("Color is %#x\n", rgbColor);

  • Читать дальше
  • 1
  • ...
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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