|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Тема 15. Объектно-ориентированное программирование (понятия)Объектно-ориентированное программирование моделирует объекты реального мира при помощи их программных эквивалентов. Классы дают возможность программисту моделировать объекты, которые обладают атрибутами (представленными в виде элементов данных) и которым присуще определенное поведение или действие (представленное в виде элементов-функций). Объекты одного класса имеют одни и те же характеристики. При определении типов, содержащих элементы данных и элементы-функции обычно используется ключевое слово class. Конструктор. Элемент-функция с тем же именем, что и сам класс, называется конструктором этого класса. Конструктор – это специальная функция-элемент класса, которая инициализирует элементы данных объекта класса. Конструктор класса вызывается автоматически при создании объекта. После создания объектов их элементы могут быть инициализированы с помощью конструктора. Элементы данных не могут быть инициализированы в определении класса. Элементы данных либо должны инициализироваться в конструкторе класса, либо их значения могут быть установлены позже, после создания объекта. Конструктор не может ни специфицировать тип возвращаемого значения, но возвращать какое-либо значение. При объявлении объекта класса справа от его имени и до точки с запятой в круглых скобках могут быть заданы инициализаторы. Эти инициализаторы передаются в качестве аргументов в конструктор класса. Деструктор. Функция с тем же именем, что и класс, с предшествующим символом тильды (~), называется деструктором класса. Деструктор класса вызывается автоматически, когда объект класса выходит из области действия. Сам деструктор фактически не разрушает объекта, скорее он выполняет заключительную «приборку» каждого объекта класса перед тем, как выделенная для него память будет возвращена системе. Деструктор не принимает параметров и не возвращает значения. У класса может быть только один деструктор. Наследование. Наследование представляет собой механизм повторного использования программного обеспечения, в соответствии с которым новые классы создаются на основе существующих. Эти классы наследуют свойства и поведение базовых классов и приобретают дополнительно новые, необходимые для новых классов, качества. При создании нового класса вместо того, чтобы писать совершенно новые элементы данных и функции-элементы, программист может просто указать, что новый класс должен наследовать элементы ранее определенного базового класса. Это новый класс называется производным классом. Каждый производный класс, в свою очередь, может быть базовым для каких-то будущих производных классов. При простом наследовании производный класс получается на основе только одного базового класса. При сложном наследовании производный класс наследует свойства от многих (возможно, логически не связанных) классов. Полиморфизм. Полиморфизм означает способность объектов различных классов, связанных наследованием, различным способом реагировать на вызов одной и той же функции-элемента.
Основная литература: 1осн[956-958] Дополнительная литература: 9доп[11-30] Контрольные вопросы: 1. Что является конструктором, а что деструктором класса? 2. Дайте определение понятию полиморфизм? 3. Дайте определение понятию наследование? 4. В чем заключается различие между простым и сложным наследованием7 5. Какой класс является базовым, а какой производным?
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.002 сек.) |