iOS. Приемы программирования. Вандад Нахавандипур

Чтение книги онлайн.

Читать онлайн книгу iOS. Приемы программирования - Вандад Нахавандипур страница 9

iOS. Приемы программирования - Вандад Нахавандипур Бестселлеры O’Reilly (Питер)

Скачать книгу

экземпляр класса Person. Возможно, вы еще не понимаете, что это значит, но в подразделе «Добавление функционала к классам с помощью методов», приведенном далее, мы подробно об этом поговорим.

      Добавление нового функционала к классам с помощью методов

      Методы – это строительные блоки, из которых состоят классы. Например, класс Person может иметь логические возможности – обозначим их как «ходить», «дышать», «есть» и «пить». Обычно такие функции инкапсулируются в методах.

      Метод может принимать параметры. Параметры – это переменные, передаваемые вызывающей стороной при вызове метода и видимые только этому методу. Например, в упрощенном мире у нашего класса Person был бы метод walk. Но вы могли бы добавить к этому методу параметр или аргумент и назвать его walkingSpeed. Этому параметру вы бы присвоили тип CGFloat. Теперь, если другой программист вызовет этот метод в вашем классе, он может указать, с какой скоростью будет идти Person. Вы как автор класса напишете соответствующий код, который будет обрабатывать различные скорости ходьбы Person. Не переживайте, если у вас возникает ощущение «как-то много работы получается». Рассмотрим следующий пример. В нем я добавил метод в файл реализации того класса Person, который мы создали в подразделе «Как создавать классы и правильно пользоваться ими» данного раздела.

      #import "Person.h"

      @implementation Person

      – (void) walkAtKilometersPerHour:(CGFloat)paramSpeedKilometersPerHour{

      /* здесь пишем код для этого метода */

      }

      – (void) runAt10KilometersPerHour{

      /* Вызываем метод walk в нашем собственном классе и передаем значение 10 */

      [self walkAtKilometersPerHour:10.0f];

      }

      @end

      Типичный метод в языке Objective-C имеет следующие качества.

      1. Префикс указывает компилятору, является ли данный код методом экземпляра (—) или методом класса (+). К методу экземпляра можно обратиться лишь после того, как программист выделит и инициализирует экземпляр вашего класса. Получить доступ к методу класса можно, вызвав его непосредственно из этого класса. Не волнуйтесь, если на первый взгляд это кажется сложным. В этой книге мы рассмотрим многочисленные примеры методов, пока просто следите за ходом рассказа.

      2. Тип данных для метода, если метод возвращает какое-либо значение. В примере мы указали тип данных void. Так мы сообщаем компилятору, что не собираемся возвращать от метода какое-либо значение.

      3. Первая часть имени метода, за которой идет первый параметр. Метод может и не иметь параметров. Методы, не принимающие параметров, довольно широко распространены.

      4. Список последующих параметров, идущих за первым.

      Рассмотрим пример метода с двумя параметрами:

      – (void) singSong:(NSData *)paramSongData loudly:(BOOL)paramLoudly{

      /* Параметры, к которым мы можем обратиться здесь, в этом методе, таковы:

      paramSongData (для доступа к информации о песне)

      paramLoudly сообщает нам, должны мы петь песню громко или нет

      */

      }

      Важно учитывать, что каждый параметр каждого метода обладает внешним и внутренним именем. Внешнее имя входит в состав метода, а внутреннее имя – это фактическое название (или псевдоним)

Скачать книгу