Назад Вперед Содержание

Отношение агрегации

Массивы объектов

Пример 1

Создадим модель стада коров.У нас будет класс корова и класс стадо. Так как стадо состоит из коров, то между этими классами будет отношение агрегации. То есть в классе стадо должно быть поле типа корова, и даже массив объектов класса корова.

Создать класс Cow – корова, содержащий:

Создать класс Stado – стадо, содержащий:

В методе Main:

Отработка:

Описание класса Cow

Описание класса Stado

Объекты (коровы) являются ссылочными типами. Пустое значение для такого типа это null.

Конструктор

Метод добавления коровы в стадо

Метод размещает корову в стаде и возвращает true, если в стаде место для коровы нашлось, и false, если места не нашлось.

Наш массив коров будет содержать ссылки на те места в памяти, где расположены поля объекта (коровы).

Методы удаления i-й коровы и вычисления общего надоя

Метод показывающий состояние стада

Метод Main класса Program






Пример 2

Усложним модель стада коров. Добавим в класс стадо поле, которое будет содержать общее количество корма, выделенного стаду.

Будем считать, что каждой корове нужно в день 20 кг корма.

Принимать или не принимать корову в стадо, будем решать не только исходя из количества мест в стаде, но и исходя из того, хватит ли ей корма.

Создавать коров будем со случайным надоем.

Добавим метод, который находит в стаде корову с минимальным надоем.

Будем удалять из стада именно эту корову и принимать на ее место другую.

Сделаем следующие изменения:

В класс Cow добавим:

Свойство только для чтения поля «кличка»;

В класс Stado добавим:

Поле korm, в котором содержится вес корма, необходимого стаду.

Изменим конструктор. В нем будет два параметра: количество мест в стаде и вес корма, выделяемый стаду в день.

Изменим метод Zap, условие размещения коровы в стаде.

Изменим метод ToStr - вывод состояния стада. Добавим строчку, сколько осталось корма.

Добавим метод Min, без параметров, возвращающий индекс коровы с минимальным надоем.

В методе Main:

Создать массив из шести коров со случайным надоем и кличками: Корова-0, Корова-1, Корова-2…). Вывести на экран.

Cоздать стадо s со случайным количеством мест и корма

С помощью метода Zap попытаться разместить всех коров в стадо. Поместятся не все.

С помощью методов ToStr и Obnadoy показать состояние созданного стада


С помощью метода Min найти в стаде корову с минимальным надоем и с помощью метода Del удалить ее из стада.

Показать состояние стада.


Попытаемся добавить в стадо остальных коров. Вывести клички коров, которые не поместились в стадо.

Показать новое состояние стада.


Отработка 1:

Отработка :

Назад Вперед Содержание