Комп'ютерна Академія IT STEP - повноцінна IT-освіта для дорослих і дітей. Ми навчаємо з 1999 року. Авторські методики, викладачі-практики, 100% практичних занять.

Ви використовуєте застарілий браузер!

Ваш браузер Internet Explorer, на жаль, є застарілим. Ця версія браузеру не підтримує багато сучасних технологій, тому деякі функції сайту можуть працювати з помилками. Рекомендуємо переглядати сайт за допомогою актуальних версій браузерів Google Chrome, Safari, Mozilla Firefox, Opera, Microsoft Edge

Старт навчання в IT Step School 01.09.2025!

110

днів

08

годин

08

хвилин

Дізнатись більше!
ШАГ логотип

Що таке об'єктно-орієнтоване програмування: світ і невеликі чоловічки

ITSTEP Academy

Програмування

18.01.2023

11738 переглядів

У програмуванні є кілька парадигм — це набір правил і прийомів, як писати код. На кшталт етикету за столом, у громадському місці. Або стилю художників конкретної епохи: як робити мазки, якими фарбами користуватися і які об'єкти переважно малювати. Програмісти домовилися писати в одних правилах, щоб розуміти один одного і створювати робочі речі.

Як і стандарти художників, парадигми з часом змінюються. Раніше єдино вірним було процедурне програмування. Зараз усе залежить від завдання і вмінь програміста зробити просто і зрозуміло.

Одна з парадигм — об'єктно-орієнтоване програмування. У статті розповімо про головні її принципи. Це складна тема, тому заглиблюватися в код ми не будемо, а розглянемо на прикладах.

Що таке процедурне програмування

Починати варто з витоків сучасного програмування — процедурної парадигми. Наступні правила виникли як виклик, щоб розв'язати проблеми цієї парадигми. Розглянемо на прикладі.

Найпростіше порівняння — людина. Усі ми — це набір клітин, з яких складається тіло: руки, ноги, органи чуття, кровоносні судини, мозок. Ми виконуємо різноманітні дії: ходимо, бігаємо, сміємося, спимо тощо.

У процедурному програмуванні роблять прості послідовності дій. Наприклад, людині потрібно вранці піти на роботу. Для цього слідує алгоритму: прокинутися, поснідати, одягнутися, піти на роботу. Для процедурної парадигми це — завершена програма.

А тепер розширимо кругозір. Уявімо, що світ — це велика програма. І в ній живуть тисячі таких чоловічків. У кожного свій набір клітин і генів. Вони схожі за загальними ознаками: геном, частини тіла, будова мозку. Але займаються чоловічки різними речами: поки один пішов на роботу, інший - сидить за комп'ютером. Третій — читає книжку. Мільярди чоловічків роблять свої справи.

Якби світ писали через правила процедурної парадигми, чоловічки б пішли в різні боки. Програма розвалилася б.

Кожен чоловічок перетягує ковдру: одному потрібно на роботу, іншому — за ПК. Програма сиплеться, тому що процедура — набір послідовних дій. Замість однієї послідовності — хаос.

Для складних програм процедурне програмування не підходить. Якщо залишити парадигму, доведеться викручуватися:

  • Або писати довгий код. Тоді наступні розробники будуть довго розбиратися і читати рядки. Простіше написати нову програму.

  • Або викидати програму і писати нову. Витрачається купа часу і сил розробників, щоб переписати ті самі властивості: руки, ноги, голова. А до них додати нові - дії чоловічків.

Щоб розв'язувати складні задачі, програмісти домовилися і придумали для них нові стандарти. Назвали правила об'єктно-орієнтованим програмуванням.

Що таке ООП

Світ складається з об'єктів: людина, котик, комп'ютерна мишка або плита на кухні. У людини є все для існування — руки, ноги, органи тощо. Комп'ютерна мишка теж має все, щоб працювати: дріт або бездротовий датчик, корпус, лампочки, кнопки для кліка. Усі об'єкти складаються з таких деталей - набору даних для нормальної роботи.

ООП — це теж світ, але в програмуванні. Він складається з об'єктів, а ті — зі своїх детальок.

Повернемося до прикладу з чоловічками. У кожного є схожий набір параметрів-генів. Ці параметри — перший об'єкт. Наприклад, будова тіла.

Також усі люди можуть виконувати однотипні дії — ходити, бігати, плавати тощо. Ці параметри належать до першого об'єкта. Такий собі, стандартний чоловічок.

Якщо говорити мовою ООП, то руки і ноги — змінні. Це конкретний набір даних, який можна підставити для будь-якого чоловічка.

Ходити і стрибати — функції. Це дії, які може виконувати чоловічок. Якби ми писали програму, то функція Чоловічок.Ходити — це процедурна програма. Один параметр і одна дія.

А тепер додамо інші об'єкти. Наприклад, чоловічки з різних континентів: Африка, Азія і Європа. У них схожий набір параметрів (чоловічок). Але є і свої — колір шкіри, зріст, вага, колір волосся, тембр мови, вік тощо.

За правилами процедурного програмування ми б склали всі параметри в одну коробку — програма готова. А для нового чоловічка раз за разом скопіпастили змінні та функції. Уявіть, скільки коду!

За принципами ООП загальні характеристики складаються по коробках — об'єктах. А ті взаємодіють між собою. Наприклад, коробка чоловічків з Європи візьме загальні характеристики з однієї коробки, додавши свої.

Як бачимо, коробки з параметрами чоловічків з'єднуються і між собою. У реальному житті так виходять змішані раси: метиси, мулати та інші. Нічого не писали заново, а просто змішали готові коробочки — об'єкти.

Так у світі можна поєднувати багато речей. Наприклад, у тварин є багато функцій, якими користуються люди: ходьба, біг, стрибки. Для овочів і фруктів своя програма на ООП. А для комп'ютерних мишок і клавіатур — своя. Усе взаємопов'язане і знаходиться у своїх коробочках.

Головні принципи ООП

Те, як з'єднуються об'єкти в ООП, визначає чотири правила: інкапсуляція, абстракція, успадкування і поліморфізм. Без них в об'єктно-орієнтованому програмуванні робити нічого.

Інкапсуляція — об'єкт незалежний від інших. Наприклад, якщо прибрати коробку з головними характеристиками чоловічків, то інші не перестануть працювати. Вони візьмуть ці ж характеристики, але залишать всередині своєї коробочки.

Абстракція ООП — у кожного об'єкта є внутрішній інтерфейс. Уявімо, що нам потрібно внести в програму всіх співробітників компанії. 

  • Що важливо для людини, як живої істоти: зріст, вага, органи, кровоносні судини. 

  • А що важливо для роботодавця: посада, вік, сімейний стан, заробітна плата.

Другі характеристики важливіші для роботодавця. Вони й будуть в об'єкті «Співробітник компанії».

Якби ми створювали об'єкт «Спортсмен», то для нього важливими є інші змінні та функції: зріст, вага, статура, вік. Параметри для роботодавця йому навряд чи знадобляться. Тому інтерфейс їх не використовує, навіть якщо дані внесли з якоїсь причини.

Тому абстракція — самостійний інтерфейс. Нам не важливо, що всередині нього. Важливіше те, що нам дають правильні змінні та функції: роботодавцю — свої. А тренеру спортивної команди — свої.

Успадкування — здатність копіювати змінні та функції з інших об'єктів. Приклад із чоловічками — родове дерево.

Кожна людина — набір генів минулих поколінь. Від мами передалися блакитні очі. Від тата — родимка на плечі. А від дідуся — високий зріст. Це і є успадкування: взяти з об'єктів кілька змінних і функцій. А з них створити новий.

Зі спадкуванням у програмуванні можна не копіпастити код, а створити один варіант, який знадобиться для всіх об'єктів. Після об'єкти підключити і все запрацює. Або перевикористати код у майбутньому: для нових чоловічків, як у прикладі.

Поліморфізм — мова використовується без «синонімів». Наприклад, для всіх чоловічків дія «ходити» — це однаковий метод. Він звучить тільки так. Якщо ми для одного чоловічка напишемо «ходити», а для іншого «продиратись» — це різні методи.

Так можна заздалегідь продумувати зв'язок між модулями. Візьмемо для прикладу сервіс розсилок в інтернет-магазині. Це набір об'єктів із товарів і покупців. І є набір методів — придуманих програмістом дій у розсилці.

  • Наприклад, для покупок метод .Видалити — попередити покупця, а після відправити в архів.

  • А для користувача метод .Видалити — відписатись від розсилки і видалити акаунт.

Метод може працювати в різних об'єктах по-різному. Але програміст про це знає, тому довіряє методу .Видалити, і не вигадує синоніми.

Плюси та мінуси ООП

Об'єктно-орієнтоване програмування має багато плюсів. Тому підхід використовується майже у всіх сучасних мовах програмування. 

Ось неповний перелік мов програмування, у яких підтримуються принципи ООП: Python, C++, Ruby, C#, JavaScript, Objective-C. А, наприклад, Java — це чиста об'єктно-орієнтована мова.

  • Код просто читати. Пам'ятаєте структуру програми в процедурному програмуванні: дерево з рядків коду, де додати елемент — переписати частину дерева і додати коріння. В ООП все розбито на об'єкти й одразу зрозуміло — з чого він складається, і що з нього беруть інші об'єкти.

  • Менше копіпасту. У процедурному програмуванні нічого незвичайного, якщо для схожого коду двічі переписують однакові значення. В ООП копіпаст вирішується принципом успадкування.

  • Складні програми виглядають і пишуться простіше. На початку статті як приклад комплексної програми ми наводили наш світ. ООП розбиває світ на маленькі блоки - їх легко написати. А якщо потрібно — детально заглибитися в конкретний об'єкт.

  • Програми пишуться єдиною мовою. Між програмістами немає «мовного бар'єру»: роботу першого легко прочитає другий. Не копаючись у дереві з купою коренів, а пройдеться від об'єкта до об'єкта. Це як читати книжку: сторінка за сторінкою.

Без мінусів ООП не залишився:

  • Складніше процедурного програмування. Потрібно знати багато теорії: вивчити будову об'єктів, їхній зв'язок і принципи. У цій статті лише загальна інформація. Якщо заглибитися — деталей більше.

  • Потрібно більше пам'яті на обслуговування коду. Об'єкти ООП складаються з методів, змінних, внутрішніх інтерфейсів. Структури займають більше пам'яті, ніж у процедурному програмуванні. Але зараз це менш важливо. У всіх вдома комп'ютери або ноутбуки з процесорами від 4 ядер, стерпною оперативною пам'яттю і відеокартами.

ООП — одна з головних тем програмування на курсі з Python. Студенти на кожному уроці детально розглядають принципи парадигми, і як їх використовувати в повсякденній роботі програміста. А через принципи вчать патерни ООП — готові структури коду, з якими працювати швидше. Подробиці про курс і програму навчання за посиланням.



Автор:

Редакція Академії ITSTEP

Освіта для дорослих

Емоційне вигорання на роботі: що робити якщо не хочеться працювати

Чому емоційне вигорання стало новою нормою в епоху онлайн-роботи. Як уникнути в умовах дистанційної роботи: ознаки, ефективні методи профілактики та психічного благополуччя

Причини та наслідки вигорання на роботі в епоху віддаленої зайнятості В останні роки формат праці зазнав суттєвих змін. Пандемія COVID-19 прискорила масовий перехід до віддаленої зайнятості, який раніше вважався перевагою лише для обраних галузей, таких як IT. Сьогодні мільйони людей по всьому світу працюють із дому, не виходячи з власної квартири. Така трансформація ринку праці створила нові виклики — зокрема, збільшення рівня стресу, втрату балансу між роботою й особистим життям і зростання кількості випадків емоційного вигорання. Емоці

ШАГ логотип

Освіта для дорослих

Менеджмент

Мережі та кібербезпека

IT Step Academy Біла Церква на INDUSTRY EVOLUTION FORUM 2025: нові горизонти співпраці та розвитку

IT Step Academy Біла Церква долучилася до INDUSTRIAL EVOLUTION FORUM 2025 — головної події про інновації, бізнес та співпрацю влади та бізнесу. Дізнайтесь, як ми формуємо майбутнє ІТ-освіти та будуємо партнерства для розвитку регіонів.

24 квітня команда IT Step Academy Біла Церква відвідала INDUSTRIAL EVOLUTION FORUM 2025 — масштабний майданчик, який об'єднує владу, бізнес і освіту задля розвитку економіки України.   Про форум:  INDUSTRIAL EVOLUTION FORUM 2025 — це міжнародна платформа, де обговорюються тренди промисловості, інвестицій, інноваційних технологій та цифрової трансформації. Захід зібрав понад 1500 учасників, серед яких представники влади, топові бізнеси, освітні заклади та міжнародні організації.   Ключові теми форуму:   - Інновації в промисловості та цифрова трансформація бізнесу 

ШАГ логотип

Soft-skills

З Великоднем, друзі, студенти, партнери!

Дорогі друзі, учні, батьки та партнери! Команда IT Step Academy щиро вітає вас із світлим святом Великодня! Нехай цей день принесе у ваші серця спокій, радість і віру у краще майбутнє. 🥚 Нехай життя буде яскравим, як писанка, 🌱 натхнення – безмежним, як весняне сонце, 🤝 а любов і добро завжди панують у ваших родинах. Дякуємо, що зростаєте та розвиваєтеся разом із нами 💙 Попереду – ще багато цікавого, і ми щасливі бути частиною вашого шляху! З любов’ю та повагою, ваша команда IT Step Academy 🌟

Дорогі друзі, учні, батьки та партнери! Команда IT Step Academy щиро вітає вас із світлим святом Великодня!  Нехай цей день принесе у ваші серця спокій, радість і віру у краще майбутнє.   🥚 Нехай життя буде яскравим, як писанка,  🌱 натхнення – безмежним, як весняне сонце,  🤝 а любов і добро завжди панують у ваших родинах.   Дякуємо, що зростаєте та розвиваєтеся разом із нами 💙  Попереду – ще багато цікавого, і ми щасливі бути частиною вашого шляху!   З любов’ю та повагою,  ваша команда IT Step Academy 🌟

ШАГ логотип

Освіта для дорослих

Освіта для дітей

🎓 IT Step Academy у Білій Церкві визнано одним із найкращих освітніх підприємств України під час війни

IT Step Academy Біла Церква — серед лідерів освіти України у часи війни! Академія посіла 23 місце в національному рейтингу «Ліга кращих підприємств України періоду війни за Незалежність». Ми не зупиняємось, а продовжуємо готувати нове покоління ІТ-фахівців, навіть у найскладніші часи. Дізнайтесь більше про наше визнання та цінності, які ми несемо в освіті.

Освіта, що не зупиняється навіть в умовах викликів. Попри повномасштабну війну, освітня сфера в Україні продовжує розвиватися, і ми з гордістю повідомляємо, що IT Step Academy (ТОВ "Освітні технології Біла Церква") увійшла до загальнонаціонального рейтингу "Ліга кращих підприємств України періоду війни за Незалежність". Наш заклад посів 23 місце серед 431 компанії в галузі "Інші види освіти" (КВЕД 85.59).  🔍 Як формувався рейтинг? Рейтинг формувався за результатами аудиторської перевірки, проведеної незалежними експертами з України та ЄС, на основі

ШАГ логотип

Встигніть 🔥

запрошуємо дітей 5-11 класів на навчання в IT Step School з 1 вересня 2025 року!

Детальніше

Увага🔥🔥🔥

Сучасна школа для учнів 5-11 класів із поглибленим вивченням IT та мов. Приєднуйтесь до IT STEP School у Білій Церкві вже сьогодні!

Детальніше

Цей сайт використовує Cookies

Політика конфіденційності