Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Инкапсуляция, полиморфизм и наследование






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

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

Забегая наперед, отметим, что данные и код внутри объекта могут быть от­крытыми, доступными вне объекта, и закрытыми. В последнем случае доступ к данным и коду может осуществляться только в рамках объекта.

С точки зрения указанного подхода класс является базовой единицей инкапсу­ляции. Класс задает формат объекта, определяя тем самым новый тип данных в широком смысле этого термина, включая и методы, то есть программный код для обработки данных. Через концепцию класса данные связываются с про­граммным кодом. В пределах класса данные представляются в виде переменных, а программный код — в виде функций (подпрограмм). Функции и переменные класса называются членами класса (соответственно, методами и полями).

Полиморфизм позволяет использовать один и тот же интерфейс для выполне­ния различных действий. Здесь действует принцип «Один интерфейс — много методов». Благодаря полиморфизму программы становятся менее сложными, так как для определения и выполнения однотипных действий служит единый интерфейс. Такой единый интерфейс применяется пользователем или програм­мистом к объектам разного типа, а выбор конкретного метода для реализации соответствующей команды осуществляется компьютером в соответствии с ти­пом объекта, для которого выполняется команда.

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.