Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
кпп.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
238.24 Кб
Скачать

Лекция 5. Объектно ориентированное программирование Объектно ориентированное программирование.

Классы. Поля и методы классов. Перегрузка методов. Наследование и полиморфизм.

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

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

 Таким образом, объект в программе представляет собой некую сущность, которая  объединяет в себе данные и функции для работы с ними. В терминологии ООП, данные в объекте называются «полями», а функции для работы с этими данными – «методами».

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

Определение объекта.

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

 

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

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

 Концепция ООП базируется на трех основных «китах»:

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

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

Полиморфизм.

Инкапсуляция.

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

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

Class ИмяКласса

{

        поле_1

поле_2

конструктор

метод_1

метод_2

 }

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

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

Мы наследуем один класс от другого и класс – наследник получает доступ ко всем полям и методам родителя и может вызывать их из себя так, как будто это его собственные поля и методы. При этом писать какой – либо дополнительный код не нужно. Достаточно просто указать в заголовке класса-наследника, что он наследуется от класса – родителя.

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

Так, например, весь язык java, по сути создан на основе глобального суперкласса Object. Все остальные объекты языка наследуют класс Object и расширяют его всеми возможными методами.