Курс ООП в С презентация. ООП в с++(полный курс). Объекты и классы
Скачать 1.76 Mb.
|
Описание классовСвойства атрибутов класса:
могут быть описаны с модификатором 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. Имя конструктора совпадает с именем класса. Таким образом, конструктор инициализирует компонентные данные объекта, выделяет для них память и другие необходимые ресурсы. В процессе своей жизни объект может сам создавать в памяти структуры данных вроде динамического массива или линейного списка. Связь самого объекта с такими структурами может осуществляться с помощью атрибута-указателя, хранящего адрес первого байта выделенной структуре области памяти. . |