Книга: Основы объектно-ориентированного программирования
Классы, а не объекты - предмет обсуждения
Классы, а не объекты - предмет обсуждения
Какова центральная концепция объектной технологии? Необходимо дважды подумать, прежде чем ответить "объект". Объекты полезны, но в них нет ничего нового.
С тех пор, как структуры используются в Cobol, с тех пор, как в Pascal существуют записи, с тех пор как программист написал на C первое определение структуры, человечество располагает объектами.
Объекты важны при описании выполнения ОО-систем. Но базовым понятием объектной технологии является класс. Обратимся вновь к его определению. (Детальное обсуждение объектов содержится в следующей лекции.)
Определение класса
Класс - это абстрактный тип данных, поставляемый с возможно частичной реализацией.
Абстрактные типы данных (АТД) являются математическим понятием, пригодным на этапе подготовки спецификации - в процессе анализа. Понятие класса, предусматривая частичную или полную реализацию, обеспечивает необходимую связь с разработкой ПО на этапах проектирования и программирования. Напомним, класс называется эффективным, если его реализация полна, и отложенным - при частичной реализации.
Аналогично АТД, класс - это тип, описывающий множество возможных структур данных, называемых экземплярами (instances) класса. Экземпляры АТД являются абстракциями - элементами математического множества. Экземпляр класса конкретен - это структура данных, размещаемая в памяти компьютера и обрабатываемая программой.
Например, если определить класс STACK, взяв за основу спецификацию АТД из предыдущей лекции и добавив информацию, необходимую для адекватного представления, то экземплярами класса будут структуры данных - конкретные стеки. Другим примером является класс POINT, моделирующий точку на плоскости. Если для представления точки выбрана декартова система координат, то каждый экземпляр POINT представляет собой запись с полями x, y - абсциссой точки и ее ординатой.
Термин "объект" появляется как побочный продукт определения "класса". Объект это просто экземпляр некоторого класса.
Программные тексты, описывающие создаваемую систему, содержат определения классов. Объекты создаются только в процессе выполнения программ.
Настоящая лекция посвящена основным приемам создания программных элементов и объединения их в системы, именно поэтому в центре внимания - классы. В следующей лекции будут рассмотрены структуры периода выполнения, порождаемые ОО-системой, что потребует изучения некоторых особенностей реализации и более детального рассмотрения природы объектов.
- Классы, а не объекты - предмет обсуждения
- Устранение традиционной путаницы
- Роль классов
- Унифицированная система типов
- Простой класс
- Основные соглашения
- Объектно-ориентированный стиль вычислений
- Селективный экспорт и скрытие информации
- Собираем все вместе
- Обсуждение
- Ключевые концепции
- Библиографические замечания
- Упражнения
- Лекция 7. Статические структуры: классы
- ЧАСТЬ IV. База данных и ее объекты.
- Физические объекты
- 1.2. Предмет коммуникации как основа планирования кампаний по продвижению
- 1.1. Информатика. Предмет информатики. Основные задачи информатики
- 1.2. Предмет курса «Правовое регулирование рекламной деятельности»
- 9.1. Классы и прототипы
- Классы сертификатов
- Статические классы
- Добавление списка необходимых предметов
- Объекты без прототипов
- 9.8. Классы в ECMAScript 5