на начало
На главную страницу
Форум   

Статья :: Классы


Классы

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

Наследование

Наследование — это ключевая особенность парадигмы объектно-ориентированного программирования. В результате абстрагирования общие свойства некоторого набора классов включаются в базовый класс более высокого уровня. А в производных классах более узкой специализации, которые "наследуют" поведение базового класса, можно изменять свойства или добавлять новые. Именно наследование делает возможным повторное использование кода и позволяет расширить сферу применения имеющихся классов.
Рассмотрим базовый класс Reservable (Резервируемый объект, ресурс) и производные от него классы, Hotel (Гостиница) и Flight (Рейс). У всех резервируемых объектов есть общие свойства, например, объем. У каждого вида резервируемых объектов есть свои уникальные характеристики. Например, гостиница имеет название и находится в определенном городе, а рейс — начало и пункт назначения. На рис. 4.1 проиллюстрированы отношения между разными резервируемыми объектами.

Абстрактные классы

Некоторые классы никогда не используются для создания экземпляров, а служат только шаблонами для создания производных классов. Например, класс Reservable (Резервируемый объект, ресурс) слишком абстрактен для создания экземпляров. На практике приходится создавать экземпляры только производных от него классов, таких как Hotel (Гостиница) и Flight (Рейс). Класс, от которого нельзя создавать экземпляры, называется абстрактным. Примером такого класса может служить класс Reservable (Резервируемый объект, ресурс). Класс, от которого можно создавать экземпляры, называется конкретным.

1.gif

Рис. 4.1. Отношение наследования для разных классов резервируемых объектов

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

Класс может находиться в следующих отношениях с другим классом:

  • Отношение наследования (IS-A, является) определяет, что один из классов является частным случаем другого. Класс Hotel (Гостиница) (подкласс, или производный класс) является одним из видов класса Reservable (Резервируемый объект, ресурс) т.е. надклассом, или базовым классом.
  • Отношение включения (HAS-A, имеет) определяет, что один класс (целое) состоит из других классов (частей). Объект HotelBroker (целое) включает в себя список объектов типа Hotel (Гостиница).
  • Отношение использования (USES-A, использует), — более слабое отношение между классами, чем включения (HAS-A, имеет). Это отношение можно определить следующим образом. Класс X находится в отношении использования (USES-A, использует) с классом У, если при выполнении обязанностей класса А" используется класс Y, т.е. в описании класса X используется класс Y.

Классы

страницы в данном разделе 
Глава 4. Объектно-ориентированное программирование на управляемом C++ Объектно-ориентированное программирование на управляемом C++
Обзор основных понятий объектно-ориентированного программирования Объекты
Классы Полиморфизм
Проект: "Бюро путешествий Acme" Проектирование абстракций
Логика базовых классов Проектирование инкапсуляции
Наследование в управляемом C++ Основные принципы наследования
Реализация примера "Бюро путешествий Acme" Запуск программы примера
Класс HotelReservation Класс HotelBroker
Класс Customers (Клиенты) Пространство имен
Класс TestHotel Резюме


Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)



PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C



 
© faq.pp.ru, справочник программиста