СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Основные возможности объектно-ориентированного программирования

Категория: Информатика

Нажмите, чтобы узнать подробности

Основные возможности объектно-ориентированного программирования

Просмотр содержимого документа
«Основные возможности объектно-ориентированного программирования»

Основные возможности объектно-ориентированного программирования

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

  • абстракция,

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

  • полиморфизм,

  • инкапсуляция (инкапсуляция).

Абстракция

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

Примером абстракции может быть сущность с именем kształt. Форма может быть описана такими свойствами, как заполнена ли она, если да, то каким цветом, является ли она непрерывной и, наконец, какой цвет имеет ее контур. Конкретное определение формы происходит в момент ее детализации. Тогда он может стать квадратом, трапецией или кругом — каждый из них будет иметь в своем распоряжении указанные свойства формы.

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

Этот принцип связан с иерархией создаваемых классов. Расширение класса - это представление различных классификаций, которые были разработаны с учетом общих черт данных групп (например, организмов или химических элементов). Было решено внедрить эту модель и в программирование, так как она позволяет создавать структуры данных, отличающиеся друг от друга, но также имеющие много общих черт. Наследование развилось для расширения классов с похожими свойствами без необходимости их перезаписи.

Полиморфизм

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

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

Герметизация

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

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

Благодаря инкапсуляции было разработано множество шаблонов проектирования, упрощающих работу с большими приложениями. Инкапсуляция вводит модификаторы доступа в языки программирования. Есть три основных режима:

  • private — переменная может быть изменена и прочитана только в том классе, в котором она была объявлена,

  • защищенный — переменная может быть изменена и прочитана в классе, в котором она была объявлена, и в классах, производных от класса, в котором она была объявлена,

  • public — переменная может быть изменена и прочитана в любом месте программы, где у нас есть доступ к объекту.

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

Пример

Взгляните на пример псевдокода, демонстрирующий эти принципы объектно-ориентированного программирования:

Строка 1. абстрактный класс Figure. Строка 2. общедоступный чисто виртуальный метод printField открыть скобку закрыть скобку. Строка 4-й класс Точка двоеточия Рис. Строка 5. public double x Строка 6. public double y Строка 8. метод printField открыть скобку закрыть скобку. Строка 9. print 0. Строка 11. class Квадратное двоеточие Figure. Линия 12. Частная точка А. Линия 13. Частная точка Б. Линия 14. Частная точка В. Линия 15. Частная точка Г. Линия 16. Частная двойная сторона. Строка 18. конструктор Square открывает скобку Point pointAnchors comma double sidelength закрывает скобку. Строка 19. Знак равенства стороныДлина стороны. Строка 20 и знак равноSetpoint. Строка 21. b точка x знак равенстваОпорная точка точка x плюс длина стороны. Строка 22. b точка y знак равенстваОпорная точка точка y. Линия 23. c точка x знак равенства Опорная точка точка x плюс длина стороны. Строка 24. c dot y равно signAnchor point y плюс длина стороны. Линия 25. d точка x знак равенства Точка привязки точка x.Линия 26. d точка y знак равенства точка привязки точка y плюс длина стороны. Строка 28. метод printField открыть скобку закрыть скобку. Строка 29. Напишите сторону звездочки.

1

абстрактный класс Рисунок

2

общедоступный чисто виртуальный метод printField()

3

4

класс Точка : Фигура

5

общественный двойной х

6

общественный двойной у

7

8

метод printField()

9

распечатать 0

10

11

класс Квадрат : Фигура

12

частная точка а

13

частная точка б

14

частная точка c

15

частная точка d

16

частная двойная сторона

17

18

конструктор Квадрат (точка привязки, двойная длина стороны)

19

сторона = длина стороны

двадцать

а = точка крюка

21

bx = точка крючка.x + длина стороны

22

по = hookpoint.y

23

cx = Hookpoint.x + длина стороны

24

cy = крючок.y + длина стороны

25

dx = Крючок.x

26

dy = крючок.y + длина стороны

27

28

метод printField()

29

сторона печати * сторона

Давайте начнем с объяснения каждого класса по очереди.

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

Затем мы определяем класс Punktс двумя координатами, которым предшествует модификатор открытого доступа. Это означает, что мы можем читать и изменять их в любой момент выполнения программы. Здесь мы также переопределяем метод wypiszPole(), потому что без него класс Punktбыл бы неполным. Площадь точки геометрии равна нулю, поэтому мы пишем здесь ноль.

Самый сложный класс во всей программе — Kwadrat. Точки, из которых состоит квадрат, задаются как приватные — мы можем читать и изменять их только в классе Kwadrat. По этой причине без создания конструктора не обойтись. В этом случае мы предоставляем конструктору punktZaczepienia, то есть первую точку, из которой мы строим квадрат. Каждая последующая точка создается на основе переменной, переданной параметром długośćBoku. Также в случае класса мы Kwadrat переопределяем метод wypiszPole() (см. строку № 28).

Словарь

интерфейс

В объектно-ориентированном программировании интерфейс — это абстрактный класс, содержащий только чисто виртуальные методы.

шаблон проектирования

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


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!