Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP_Otvety.docx
Скачиваний:
13
Добавлен:
07.04.2025
Размер:
2.59 Mб
Скачать

1. Событийно-управляемое приложение: событие, типы событий, сообщение, обработчик, механизм обмена сообщениями, очередь сообщений.

Событийно-управляемое приложение представляет собой блоки команд, которые вызываются как реакции на события. Всё, что происходит в приложении происходит как реакция на какие-либо события.

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

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

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

Типы событий:

События ввода-вывода: нажатие на клавишу, нажатие мыши;

Системные события: изменения размеров окна, таймер;

Пользовательские события: нажатие на кнопку.

2. Основные понятия ООП: значение, тип, выражение, переменная, указатель, объект реального мира, модель, программный объект, абстрагирование, свойство, атрибут, класс, экземпляр. Активность объектов, методы, сравнение метода и функции, принимающей объект. Синтаксис объявления классов. Синтаксис и семантика создания объектов, обращения к свойствам и методам объектов. Инкапсуляция, типы видимости атрибутов и методов.

Значение - ответ на вопрос или результат вычислений(его нельзя вычислять дальше).

Тип - множество значений, «похожих» друг на друга тем, что они все имеют одинаковую природу, одинаковые единицы измерений, могут являться результатами одних и тех же вычислений и к которым могут применяться одни и те же операции. Таким образом, любое значение принадлежит какому-то типу.

Выражение - построенная по правилам ЯП синтаксическая конструкция, которую можно вычислять, упрощать, и в результате этого вычисления, возможно, получить значение.

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

Указатель - специальная переменная, хранящая адрес какой-то другой области памяти.

Ссылка - альтернативное имя для существующей переменной или для какой-то безымянной области памяти.

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

Объект реального мира — это нечто, что мы можем воспринимать нашими органами чувств (видеть, осязать) как единое целое, отделённое от всего остального. Окно - объект, рама окна - объект, но верхняя часть окна - вряд ли объект, потому что сложно сказать, где начало того конца, которым оканчивается начало!

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

Программный объект - программная модель объекта реального мира, абстракция какой-либо сущности

Абстрагирование - выделение нужных свойств, упрощение, выделение только важных свойств.

Свойство - (1, объекта реального мира) — характеристика объекта, какое-либо его качество; (2, программное) — способ доступа ко внутреннему состоянию объекта, имитирующий переменную некоторого типа, но в действительности реализованный через вызов функции (есть, например, в С#).

Атрибут - (1, программное) — поле класса, переменная, связанная с классом или объектом; (2, объекта реального мира) — свойство объекта, необходимое для его идентификации.

Класс – Множество объектов, с одинаковыми атрибутами. Абстрактный тип данных.

Экземпляр - объект класса, имеющий определенное состояние.

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

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

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

Синтаксис объявления классов –

class Point{ private: int x, int y; public: Point(){ x=0; y=0; } Point(int x, int y){

this->x=x; this->y=y; } Point(const Point &p){ x=p.x; y=p.x; } ~Point(){ } void mode (int dx, int dy){ x=x+dx; y = y +dy; }

};

class Point3D : public Point{

Point3D(){ z=0;} Point3D(int x, int y, int z) : Point(x, y) { this.x = x; }

};

Синтаксис и семантика создания объектов –

Point p;

Point *p1 = new Point;

Обращение к свойствам и методам объектов –

p.x = 1; для переменных объектов p1->x = 2; для переменных указателей

(*p1).x = 3; для переменных указателей p.mode(2,4); p1->mode(2,5); cx

Инкапсуляция - Объединение данных, относящихся к одному объекту и функций, которые эти данные обрабатывают в одном месте. А также сокрытие внутреннего содержимого объекта от внешнего интерфейса.

Типы видимости атрибутов и методов — уровни доступности элементов объекта другим объектам:

● private (приватный) элемент доступен только внутри класса; используется для полного скрытия свойств и методов;

● protected (защищенный) элемент доступен внутри класса и классов-потомков;

● public (публичный) элемент доступен отовсюду, независимо от иерархии классов.

Инкапсуляция и сокрытие нужны для изоляции внутреннего содержимого объекта от второстепенных элементов и для снижения количества ошибок во время работы с объектом.

Соседние файлы в предмете Объектно ориентированное программирование