Главная страница
Навигация по странице:

  • Описание классов

  • Сообщение

  • Конструкторы

  • Курс ООП в С презентация. ООП в с++(полный курс). Объекты и классы


    Скачать 1.76 Mb.
    НазваниеОбъекты и классы
    АнкорКурс ООП в С презентация
    Дата21.02.2022
    Размер1.76 Mb.
    Формат файлаppt
    Имя файлаООП в с++(полный курс).ppt
    ТипДокументы
    #368655
    страница3 из 26
    1   2   3   4   5   6   7   8   9   ...   26

    Описание классов


    Свойства атрибутов класса:
      могут иметь любой тип, кроме типа этого же класса (но могут быть указателями на этот класс);
      могут быть описаны с модификатором const, при этом они инициализируются только один раз (с помощью конструктора) и не могут изменяться;
      Инициализация атрибутов при описании не допускается.
      Если тело метода определено внутри класса, он является встроенным (inline). Как правило, встроенными делают короткие методы. Если внутри класса записано только объявление (заголовок) метода, сам метод должен быть определен в другом месте программы с помощью операции доступа к области видимости (::).

    Описание классов


    //person.h
    //класс описывает свойства личности в информационной системе
    class person
    {
    public:
    person(); //конструктор без параметров
    person(const person& orig); //конструктор копирования
    person(char* n, int y); //конструктор с параметрами
    virtual person(); //деструктор
    const char* get_name() ; //получение имени человека - селектор
    const int get_year(); //получение года рождения человека
    //изменение имени человека - модификатор
    void set_name(char* value);
    //изменение года рождения человека - модификатор
    void set_year(int value);
    protected:
    char* name; //имя человека, указатель на строку символов
    int year; //год рождения человека, выражаем целым числом
    };

    Описание классов


    Поведение – это то, как объект действует и реагирует на события, происходящие в системе. Поведение объекта определяется выполняемыми над ним операциями и его состоянием.
    Для того чтобы создать объекты класса person, напишем:
    //main.cpp
    #include "person.h"//подключаем заголовочный файл описания класса
    void main()
    {
    person A, B, C;
    }
    В данном случае объявлено три различных объекта и каждый из них занимает определенный участок в памяти. Все объекты в системе имеют некоторое состояние, а состояние системы заключено в объектах.

    Описание классов


    Объектно-ориентированный стиль программирования связан с воздействием на объекты путем передачи им сообщений (т.е. обращения к методам, описанным в классе объекта). Операция над объектом порождает некоторую реакцию этого объекта.
    Операция – это услуга, которую класс может предоставить своим клиентам. На практике над объектами можно совершать операции пяти видов:


    Конструктор


    Определяет способ создания объекта или его инициализации;
    имеет то же имя, что и класс.


    Деструктор


    Операция, выполняющая очистку памяти, когда объект класса выходит за пределы области видимости или он удаляется;
    имеет то же имя, что и класс со знаком "" перед ним.


    Модификатор


    Операция, которая изменяет состояние объекта.


    Селектор


    Операция, считывающая состояние объекта, но не меняющая состояния.


    Итератор


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

    Описание классов


    Объекты взаимодействуют между собой, посылая и получая сообщения.
    Сообщение — это запрос на выполнение действия, содержащий набор необходимых параметров. Механизм сообщений реализуется с помощью вызова соответствующих функций.
    Таким образом, с помощью ООП легко реализуется так называемая событийно-управляемая модель, когда данные активны и управляют вызовом того или иного фрагмента программного кода.
    Примером реализации событийно-управляемой модели может служить любая программа, управляемая с помощью меню. После запуска такая программа пассивно ожидает дейст­вий пользователя и должна уметь правильно отреагировать на любое из них. Событийная модель является противоположностью традиционной (директивной), когда код управляет данными: программа после старта предлагает пользователю выполнить некоторые дейст­вия (ввести данные, выбрать режим) в соответствии с жестко заданным алгоритмом.


    Конструкторы

    Конструкторы


    Для инициализации объектов класса не следует использовать функцию типа init(). Если нигде не сказано, что объект должен быть проинициализирован, то программист может забыть об этом, или сделать это дважды (часто с одинаково разрушительными последствиями).
    Для инициализации объекта следует использовать специальную функцию –конструктор, которая будет автоматически вызываться при определении каждого объекта класса или размещении его в памяти с помощью оператора new.
    Имя конструктора совпадает с именем класса.
    Таким образом, конструктор инициализирует компонентные данные объекта, выделяет для них память и другие необходимые ресурсы.
    В процессе своей жизни объект может сам создавать в памяти структуры данных вроде динамического массива или линейного списка. Связь самого объекта с такими структурами может осуществляться с помощью атрибута-указателя, хранящего адрес первого байта выделенной структуре области памяти. .

    1   2   3   4   5   6   7   8   9   ...   26


    написать администратору сайта