Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Отношения между классами




Классы могут взаимодействовать друг с другом, как на этапе проектирования, так и на этапе выполнения программы. Существуют следующие, основные, отношения между классами:

· Наследование. Позволяет описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса наследуются новым классом. Например: у класса «Автомобиль» есть свойство «Количество колёс». Если класс «Автобус» является наследником класса «Автомобиль», то он также наследует и свойство «Количество колёс»;

Опредедение наследования класса выглядит следующим образом:

class Child : Parent

{

}

В данном примере, класс «Child» объявляется как наследник класса «Parent»;

Различают следующие виды наследования:

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

o Множественное наследование. При множественном наследовании дочерний класс может наследовать свойства и функционал нескольких родительских классов. Возможность реализации данного наследования реализовано в языке C++;

 

· Ассоциация. Объекты классов вступают во взаимодействие между собой. Т.е. методы одного класса могут создавать и использовать экземпляры (объекты) другого класса;

Пример ассоциации выглядит следующим образом:

Class Client

{

string _name = “Иванов Иван Иванович”;

float _rest = 0.0f;

void LoadRest()

{

Account acc = new Account();

_rest = acc.LoadRestForClient(_name);

}

}

 

В данном примере в методе «LoadRest» класса «Client» используется класс «Account» для получения информации по остатке на счёте клиента.

· Агрегация. Объекты одного класса входят в объекты другого. В данном случае, подразумевается, что данными одного класса являются экземпляры других классов. Например: Есть класс «Двигатель», который содержит данные и методы, характеризующие двигатели. У класс «Автомобиль» есть аналогичное свойство, которое принимает значение одного из экземпляров класса «Двигатель»;

Пример ассоциации выглядит следующим образом:

Class Engine

{

}

 

Class Car

{

Engine _engine;

}

В данном примере класс «Car» содержит поле с типом «Engine», что является агрегацией.

· Композиция. Объекты одного класса, входят в объекты другого и зависят друг от друга по времени жизни. Например: Экранная форма является отдельным классом. На ней расположены различные компоненты (поля для ввода, кнопки и пр.), которые тоже являются классами. При этом, все они, составляют композицию, время жизни всех этих объектов, составляющих композицию, ограничено временем жизни формы (при закрытии формы все объекты удаляются).


Поделиться:

Дата добавления: 2015-09-15; просмотров: 47; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты