вторник, 28 июля 2015 г.

5. Массивы (NSArray)

В этом видео уроке подробно рассматриваются массивы - используется класс NSArray.
Создание массивов с помощью initWithObjects или arrayWithObjects. Размер массива определяется свойством count класса NSArray.
Показано как обращаться к элементу массива по индексу - метод objectAtIndex или узнать индекс объекта indexOfObject.
Вывод массива обычным циклом или специальной конструкцией:
К примеру для массива NSString:
for (NSString *string in array) NSLog(string);

Так же для примера массива и использования полиморфизма был создан класс со свойством и наследник с другим свойством. Их можно хранить в одном массиве.
Так же показан метод isKindOfClass для определения к какому классу принадлежит объект.

Файлы проекта  Xcode для этого урока

Теперь домашнее задание. Я выполнил до степени зведа :)
 Уровень ученик:
(просто повторение того что увидел)

1. Создать класс "человек", который будет содержать в себе базовые качества - "имя", "рост", "вес", "пол", а также будет иметь метод "передвижение".
2. Создать дочерние классы (наследники) "велосипедист", "бегун", "пловец" и переопределить метод "передвижение" в каждом из этих классов.
3. При старте программы создать по одному объекту каждого класса и объединить их в массив.
4. В цикле пройти по всем элементам массива и вывести на экран все характеристики каждого объекта (имя, рост и тд) и у каждого вызвать метод "передвижение".

Если получилось пройти уровень ученик, то можно попробовать уровень студент:
(небольшая импровизация + дополнительная мозговая деятельность)

5. Создать еще одного наследника от класса человек, добавить в него пару новых свойств, добавить в массив и в цикле вывода вывести его свойства как дополнение к свойствам человека
6. Метод "передвижение" реализовать таким образом, чтобы перед тем как выполнить свое собственное передвижение, он выполнял передвижение реализованное в классе человек
7. Массив выводить в обратном порядке.

Уровень Мастер:
(простор для фантазии + больше мозговой деятельности + больше практики)

8. Создать класс "животное" (не наследник класса человек!) со своими собственными базовыми свойствами (отличными от человеческих) и методом "передвижение".
9. Унаследоваться от него и создать пару других классов с переопределенным передвижением.
10. Объединить всех людей и животных в один массив.
11. В цикле выводить тип объекта (человек или животное) перед тем как выводить его свойства и вызывать метод

Уровень Звезда:
(разобраться с тем чего Леша не объяснял! + реальная задача!)

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

Файлы проекта ДЗ№5 Массивы

Комментариев нет:

Отправить комментарий