Развитие информационных технологий неразрывно связано с


 Объектно-ориентированное программирование



Pdf көрінісі
бет3/15
Дата08.02.2022
өлшемі414,76 Kb.
#130932
1   2   3   4   5   6   7   8   9   ...   15
Байланысты:
Лекции 1,2 Введение

1.2 Объектно-ориентированное программирование 
Принципы ООП проще всего понять на примере программ 
моделирования. В реальном мире каждый предмет или процесс обладает 
набором статических и динамических характеристик, иными словами, 
свойствами и поведением. Поведение объекта зависит от его состояния и 
внешних воздействий. Например, объект «автомобиль» никуда не поедет, 
если в баке нет бензина, а если повернуть руль, изменится положение 
колес. 
Понятие объекта в программе совпадает с обыденным смыслом этого 
слова: объект представляется как совокупность данных, характеризующих 
его состояние, и функций их обработки, моделирующих его поведение. 
Вызов функции на выполнение часто называют посылкой сообщения 
объекту. 
При создании объектно-ориентированной программы предметная 
область представляется в виде совокупности объектов. Выполнение 
программы состоит в том, что объекты обмениваются сообщениями. Это 
позволяет использовать при программировании понятия, более адекватно 
отражающие предметную область. 
Важным свойством объекта является его обособленность. Детали 
реализации объекта, то есть внутренние структуры данных и алгоритмы их 
обработки, скрыты от пользователя объекта и недоступны для 
непреднамеренных изменений.
Объект используется через его интерфейс – совокупность правил 
доступа. 
Скрытие деталей реализации называется инкапсуляцией (от слова 
«капсула»). Ничего сложного в этом понятии нет: ведь и в обычной жизни 
мы пользуемся объектами через их интерфейсы. Сколько информации 
пришлось бы держать в голове, если бы для просмотра новостей надо было 
знать устройство телевизора! 
Таким образом, объект является «черным ящиком», замкнутым по 
отношению к внешнему миру. Это позволяет представить программу в 
укрупненном виде на уровне объектов и их взаимосвязей, а, следовательно, 
управлять большим объемом информации и успешно отлаживать сложные 
программы. 
Сказанное можно сформулировать более кратко и строго: объект – это 
инкапсулированная абстракция с четко определенным интерфейсом. 


Инкапсуляция позволяет изменить реализацию объекта без 
модификации основной части программы, если его интерфейс остался 
прежним. Простота модификации является очень важным критерием 
качества программы: ведь любой программный продукт в течение своего 
жизненного цикла претерпевает множество изменений и дополнений. 
Кроме того, инкапсуляция позволяет использовать объект в «другом 
окружении» и быть уверенным, что он не испортит не принадлежащие ему 
области памяти. 
Каждый год в мире пишется огромное количество новых программ, и 
важнейшее 
значение 
приобретает 
возможность 
многократного 
использования 
кода. 
Преимущество 
объектно-ориентированного 
программирования состоит в том, что для объекта можно определить 
наследников, корректирующих или дополняющих его поведение. При этом 
нет необходимости не только повторять исходный код родительского 
объекта, но даже иметь к нему доступ. 
Наследование является мощнейшим инструментом ООП и 
применяется для следующих взаимосвязанных целей: 
– исключения из программы повторяющихся фрагментов кода; 
– упрощения модификации программы; 
– упрощения создания новых программ на основе существующих.
Кроме того, только благодаря наследованию появляется возможность 
использовать объекты, исходный код которых недоступен, но в которые 
требуется внести изменения. 
Наследование позволяет создавать иерархии объектов. Иерархия 
представляется в виде дерева, в котором более общие объекты 
располагаются ближе к корню, а более специализированные – на ветвях и 
листьях. Наследование облегчает использование библиотек объектов, 
поскольку программист может взять за основу объекты, разработанные 
кем-то другим, и создать наследников с требуемыми свойствами. 
Объект, на основании которого строится новый объект, называется 
родительским объектом, объектом-предком, базовым классом, или 
суперклассом, а унаследованный от него объект — потомком, подклассом, 
или производным классом. 
ООП позволяет писать гибкие, расширяемые и читабельные 
программы. Во многом это обеспечивается благодаря полиморфизму, под 
которым понимается многообразие форм реализаций одноименных 
методов в цепочке наследуемых классов. Полиморфизм позволяет во время 
выполнения программы с помощью одного и того же имени (имени 
метода) выполнять разные действия или обращаться к объектам разного 
типа. Чаще всего понятие полиморфизма связывают с механизмом 
виртуальных методов, который мы рассмотрим в дисциплине «Технология 
программирования» в следующем семестре. 
Подводя итог сказанному, сформулирую достоинства ООП: 
– использование при программировании понятий, близких к предметной 
области; 


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


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   15




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет