Московский государственный университет имени М.В.Ломоносова
Опубликован: 03.10.2006 | Доступ: свободный | Студентов: 1224 / 79 | Длительность: 09:08:00
Специальности: Программист
Лекция 10:

С++. Классы. Механизмы наследования. Объектные типы

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >
Аннотация: Выполняется введение в терминологию объектно-ориентированных языков программирования. Дается понятие класса, конструктора и деструктора класса, вложенного класса. Вводится понятие объектного типа данных.

Терминология объектно-ориентированного программирования

Объектно-ориентированное программирование позволяет оперировать в терминах классов: определять классы, конструировать производные классы, создавать объекты, принадлежащие классу, - экземпляры класса.

Сначала в некоторых языках программирования появился тип struct, расширением которого стал тип class.

Класс определяет данные (переменные) и поведение (методы). Данные и методы класса также называют членами класса. Класс рассматривается как определяемый пользователем тип данных.

Объектом называется экземпляр некоторого класса. Объект создается как переменная типа класса, которая используется для доступа к данным - членам класса и для вызова методов - членов класса.

Наследованием называется механизм, позволяющий производному классу наследовать структуру данных и поведение другого класса, а также наследовать поведение, объявленное в интерфейсах и абстрактных классах.

Наследование позволяет определять новые классы в терминах существующих классов.

В объектно-ориентированном программировании наследование может быть:

  • множественным, позволяющим производному классу наследоваться одновременно от нескольких классов (например, так реализован механизм наследования в С++);
  • простым, когда производный класс имеет только один наследуемый класс (например, так реализованы языки Java и Object Pascal).

Наследуемый класс принято называть базовым классом, или родительским классом (классом - предком, суперклассом).

Производный класс, наследующий структуру данных и поведение своего базового класса, иногда также называется дочерним классом (классом - потомком, подклассом).

В производном классе можно переопределять методы базового класса и добавлять новые методы. Непосредственным базовым классом называется класс, от которого порожден производный класс следующего уровня иерархии:

    А     Базовый класс класса С и непосредственный базовый класс класса B
    \Downarrow      
    B     Непосредственный базовый класс класса C
    \Downarrow      
    C     Производный класс

Полиморфизмом называется способность различных объектов по-разному обрабатывать одинаковые сообщения.

Инкапсуляция позволяет работать в терминах объектов и скрывать их переменные и методы. Использование инкапсуляции дает возможность модифицировать внутреннюю реализацию объекта без влияния на программу в целом до тех пор, пока не изменяется интерфейс с объектом.

В языках программирования инкапсуляция поддерживается реализацией модификаторов доступа, таких как protected - для защищенных членов класса на уровне класса, и private - для полностью защищенных членов класса.

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >