Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пример_выполнения_лаб №2.doc
Скачиваний:
54
Добавлен:
15.03.2015
Размер:
86.02 Кб
Скачать

Замечания

Объект = данные + операции (методы)

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

Данные класса – это поля

Функции класса – это методы.

Видимость элементов класса управляется спецификаторами доступа – public (описывает интерфейс класса) и private ( видимость только внутри класса).

Доступ к элементам объекта такой же как к полям структуры.( используется операция .(точка) при обращении к элементу через имя объекта, или операция -> при обращении через указатель. Это касается только обращения к элементам со спецификатором public. Получить или изменить значения элементов со спецификатором private можно только через обращение к соответствующим методам.

Итак, в ООП каждый объект принадлежит определенному классу.

Класс – это основной инструмент, с помощью которого осуществляется инкапсуляция и сокрытие данных.

Если описан класс, то определены характеристики всех объектов, принадлежащих этому классу. Но класс определяет не только структуры данных, но и функции их обработки.

Функции, инкапсулированные в классе и предназначенные для выполнения каких-то операций с данными любого из объектов этого класса, называют методами класса.

Константы и переменные класса называются полями.

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

Инкапсуляция – это ограничение доступа к данным и их объединение с методами, обрабатывающими эти данные. Доступ к отдельным частям класса регулируется с помощью специальных ключевых слов:

  • public (открытая часть),

  • private (закрытая часть) и

  • protected ( защищенная часть).

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

Доступ к закрытой части класса возможен только из его собственных методов.

Доступ к защищенной части возможен из его собственных методов и из методов классов – потомков. Все это повышает надежность программ.

Схема уровней доступа к членам класса

Среди методов класса есть специальные методы – конструкторы и деструкторы.

Конструктор – это метод, который обеспечивает выделение памяти при создании объекта и инициализирует переменные объекта данного класса.

Особенности конструктора:

  • Конструктор носит то же имя, что и сам класс, в котором он определен.

  • Конструктор ничего не возвращает в точку вызова, поэтому при объявлении он не должен иметь описатель типа возвращаемого значения. Это значит, что конструктор не может быть явно вызван из пределов программы. Конструктор явно вызывается самим компилятором при создании объекта, либо неявно вызывается при выполнении оператора new применяемого к объекту при динамическом распределении памяти, а также неявно вызывается при копировании объекта данного класса.

  • Если все параметры конструктора имеют значение по умолчанию или если конструктор вовсе не имеет параметров, то он называется конструктором по умолчанию. Такой конструктор имеет несколько областей применения. Его используют, если компилятор встречает определение массива объектов, как это происходит у нас во второй лабораторной работе при конструировании простейшего класса. У нас объявлен массив из нескольких объектов, и каждый объект этого массива создан путем вызова конструктора по умолчанию. И если бы не было у нас конструктора по умолчанию, то мы не смогли бы объявлять массивы этого класса.

Мы столкнемся с конструктором по умолчанию и в четвертой

лабораторной работе, когда будем изучать механизм наследования.

В других случаях конструктор может иметь любое количество параметров.

Деструктор – это метод, который используется для освобождения памяти, выделенной при создании объекта конструктором.

Особенности деструктора:

  • Деструктор имеет такое же имя как и класс, но предваряется символом ~ (тильда).

  • Объект, созданный как локальная переменная в некотором блоке, уничтожается неявно, когда при выполнении программы будет достигнут конец блока. Деструктор особенно важен, если память выделяется динамически из области так называемой кучи (heap).Такая память освобождается явно с помощью операции delete.

  • В отличии от конструктора деструктор не может получать аргументы и быть перегружен.

Выводы

  • Введено понятие ООП, присущее только С++.

  • Определен новый тип данных – класс(class), который в свою очередь позволяет определять объекты данных (object) и связывать с ними операции и функции. Объектами или экземплярами класса называются конкретные переменные типа данных “класс”.

  • Входящие в класс константы и переменные называются полями, а функции класса называются методами. Поля и методы называются членами класса.

  • Особыми методами являются конструктор и деструктор.

  • Программы, разработанные на основе ООП, реализуют алгоритмы, описывающие взаимодействие между объектами.

  • Основные принципы ООП :

инкапсуляция,

полиморфизм,

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

Простое объявление класса выглядит так:

сlass MyClass {

public:

//член класса может использоваться любой функцией

private:

// член класса может использоваться только функциями-

членами и функциями- друзьями того класса, где он описан

protected:

//как и private , но еще и функциями-наследниками

} ; //обратите внимание на завершающую точку с запятой!

Создание объекта:

MyClass MyObject ;

9