Обзор основных понятий объектно-ориентированного программирования. Объекты.
В предыдущей главе были наложены основы программирования на управляемом C++. Учитывая ваш богатый опыт работы с C++ было охвачено много материала. В этой главе мы изменим темп вместо того, чтобы осваивать новый материал потратим больше времени на углубление понимания объектно ориентированной стороны управляемого С++ в частности, абстракции и наследования. Сначала мы повторим основы объектно-ориентированного программирования, потом рассмотрим пример "Бюро путешествий Acme". Этот пример будет разрабатываться в последующих главах по мере изучения платформы NET.
Мы рассмотрим, какие абстракции подходят для того чтобы реализовать систему резервирования ресурсов, и реализуем систему резервирования (бронирования) гостиничных номеров. В абстрактные базовые классы мы поместим повторно используемый код с помощью которого можно легко реализовать и другие системы резервирования. Вы увидите что правильное использование абстракции – ключ к такой реализации. Вы также знаете какие особенности управляемого C++ особенно полезны для объектно ориентированного программирования. Эти особенности а именно, контроль за доступом (модификаторы доступа public (общедоступный) private (частный) и protected (защищенный)) и использование свойств дают возможность созывать надежные и удобные в употреблении абстракции.
Эта часть главы – вступление; в ней мы рассмотрим основы объектно ориентированного программирования. Если у вас есть опыт работы с объектно ориентированным С++, можете пропустить вступление и перейти к рассмотрению примера. С другой стороны если вы раньше использовали C++ просто как улучшенный вариант С++, вам будет полезно прочитать вступление, для того чтобы научиться использовать С++ в качестве объектно-ориентированного языка и научиться строить иерархии наследования которые являются моделями реальных систем.
Объекты
Объекты имеют значение не только в мире программ, но и в реальном мире. Объектная модель описывает взаимосвязь между объектами.
Объекты в реальном мире
Значение термина объект в реальном мире интуитивно понятно. Существуют конкретные, материальные осязаемые объекты (мяч, автомобиль, самолет), и более абстрактные объекты, которые представляют собой реализацию некоторых понятий (комитет, патент, страховой контракт).
У объектов есть атрибуты (характеристики), причем к объектам можно применять некоторые операции. У мяча есть размер, вес, цвет, и т.д. С мячом можно проделать некоторые действия, например, бросить, поймать и уронить.
Между классами объектов могут существовать разные отношения. Одно из таких отношений– это отношение специализации (конкретизации), например автомобиль – это один конкретный вид из различных средств передвижения. Существуют также отношения "часть-целое"; например, автомобиль состоит из двигателя, шасси, колес и т.д.