План 1. Цель лекции 2. Идеи объектно-ориентированного программирования 3. Классы и объекты 4. Как моделировать поведение Цель лекции • Показать как можно создать полноценную программу используя заранее подготовленные компоненты • Создание полноценной программы подразумевает также моделирование ее поведения Идеи ООП • Класс – разновидность абстрактного типа данных. На практике объектноориентированное программирование сводится к созданию некоторого количества классов, включая интерфейс и реализацию, и последующему их использованию. Идеи ООП • Объект – некоторая сущность в виртуальном пространстве, обладающая определённым состоянием и поведением, имеющая заданные значения свойств (атрибутов) и операций над ними (методов). Как правило, при рассмотрении объектов выделяется то, что объекты принадлежат одному или нескольким классам, которые определяют поведение (являются моделью) объекта. Термины «экземпляр класса» и «объект» взаимозаменяемы. Идеи ООП • Интерфейс – абстрактный тип данных. Который придуман для упрощения работы с классом Идеи ООП • Инкапсуляция – механизм, позволяющий скрывать метод обработки данных. • Наследование – механизм позволяющий получать новый класс добавляя новые методы и\или элементы к уже существующему • Полиморфизм – возможность использовать одинаковый интерфейс и разный способ обработки данных Классы • Класс мы можем определить как список собственных членов, а именно полей (свойств) и методов/функций/процедур • Функция - поименованный фрагмент программного кода (подпрограмма), к которому можно обратиться из другого места программы. • Метод – функция, объявление которой является неотъемлемой частью определения класса Классы • Процедурой - мы называем функцию, которая не возвращает значений. Как моделировать поведение • Мы можем задавать параметры объектов при наступлении некоторых событий. И в зависимости от того какое именно событие наступило мы можем заставить делать программу то или иное действие. Как моделировать поведение • Пример: класс кнопка Как моделировать поведение • void UserInit() - виртуальный метод выполнятся при инициализации элемента • void SetValue() - виртуальный метод вызывается при изменении значения элемента • void GetValue() - виртуальный метод выполняется при получении значения элементом • void OnClick() - виртуальный метод вызывается при нажатии на кнопку Как моделировать поведение • Пример кода • CanRead() - невиртуальный метод определяет возможность выполнения зачитывания записей (при возвращаемом значении = true зачитывание возможно)