Alt linux Программирование на языке С++ в среде Qt Creator Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк, О. В. Чеснокова, А. С. Чмыхало Москва alt linux 2015



Download 5,27 Mb.
Pdf ko'rish
bet115/193
Sana24.02.2022
Hajmi5,27 Mb.
#227496
1   ...   111   112   113   114   115   116   117   118   ...   193
Bog'liq
Book-qtC


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

Глобальные
переменные
Рис. 10.1: Процедурный подход к программированию
Процедурный подход претерпел ряд модернизаций, более современные язы-
ки высокого уровня заимствовали некоторые принципы функционального про-
граммирования
(одним из удачных примеров такого симбиоза является язык C),
большие программы делились на модули, а фирмы вводили собственные строгие
политики в области оформления программного кода. Но в большой программе
по-прежнему было слишком трудно разобраться и слишком просто запутаться,
поэтому проблема всё равно оставалась.
Объектный подход
родился как следующий важный шаг на пути качествен-
ного написания больших программ. В нём предлагается разделять программу на
самостоятельные части — объекты, наделённые собственными свойствами, теку-
щим состоянием, и умеющие взаимодействовать друг с другом и с окружающей
средой — примерно так, как это происходит у объектов реального мира.
В упрощённом виде такая парадигма получила название объектно-
ориентированного программирования (ООП) — подхода, который позволяет
использовать в программе объекты и даже поощряет эту практику, но не требу-
ет, чтобы программа состояла из одних только объектов.
Классическое определение объекта звучит следующим образом:
Объект — это осязаемая сущность, которая чётко проявляет своё поведе-
ние.
Читателю, для которого объектный подход к программированию внове, такое
определение наверняка покажется слишком туманным. Позже конкретные при-
меры прояснят ситуацию, а пока поговорим о внутреннем устройстве объекта.
Объект состоит из следующих трёх частей:
• имя объекта;
• состояние (переменные состояния);
• методы (операции).
На рисунке 10.2 изображены два объекта с именами «Объект 1» и «Объект
2». Первый объект имеет две переменные состояния и три метода, в то время
Программирование на языке С++ в среде Qt Creator


10.1. Возникновение объектного подхода в программировании
269
как второй объект обходится одной единственной переменной состояния и двумя
методами.
Объект

Объект

Сообщения
Переменная

Состояние
Интерфейс
Метод

Метод

Метод 3
Метод 1
Метод 2
Переменная 1
Интерфейс
Состояние
Переменная 2
Рис. 10.2: Объектный подход к программированию
Интерфейс объекта с окружающей средой (пользователем, остальной частью
программы, операционной системой и т. д.) полностью осуществляется метода-
ми: к состоянию объекта нет другого доступа извне, кроме как через его методы.
Например, если объект должен передавать окружающей среде информацию о
значении одной из своих переменных состояния — для этого создают специаль-
ный метод.
Закрытость внутреннего состояния объекта от окружающей среды известна
также как свойство инкапсуляции. Инкапсуляция означает, что объект содержит
внутри себя данные и методы, оперирующие этими данными. Фактически, для
окружающей среды объект представляет собой аналог «чёрного ящика»: прини-
мает входные воздействия и выдаёт в качестве реакции на них выходные, но при
этом никак не проявляет свою внутреннюю структуру.
Для взаимодействия друг с другом объекты обмениваются сообщениями, при-
чём объект, получивший сообщение, может либо проигнорировать сообщение,
либо выполнить содержащуюся в нём команду (с помощью какого-либо из своих
методов).
Однотипные объекты образуют класс. Под однотипными объектами мы пони-
маем такие объекты, у которых одинаковы наборы методов и переменных состо-
яния. При этом объекты, принадлежащие одному классу, имеют разные имена и,
вероятно, разные значения переменных состояния. Например, можно придумать
класс «студент», объектами которого будут конкретные студенты вуза. Объект
класса «студент» должен иметь переменные состояния, в которых содержится
информация о конкретном студенте: Ф.И.О., номер студенческой группы, домаш-
ний адрес, список изучаемых дисциплин и т. д. Конкретный список переменных
зависит от задачи, для решения которой создаётся программа. Так, если постав-
© 2015 Алексеев Е. Р., Злобин Г. Г., Костюк Д. А., Чеснокова О. В., Чмыхало А. С.


270
Download 5,27 Mb.

Do'stlaringiz bilan baham:
1   ...   111   112   113   114   115   116   117   118   ...   193




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish