article-spots
article-carousel-spots
programs
Технології
Клас, Git, принципи ООП: базові поняття Java
24 лют 2023

Створена у 1995 році, Java невдовзі «відзначить» своє 30-річчя. Це — ціла епоха для галузі ІТ, яка розвивається надшвидкими темпами, але, в той же час, універсальна адаптивна мова Java все ще залишається популярною та затребуваною. Зважаючи на величезну кількість продуктів, написаних на Java, попит на кваліфікованих «джавістів» в найближчій перспективі залишатиметься стабільно високим.

Отже, якщо ви вирішили опанувати цю доволі непросту, але перспективну мову програмування, ловіть п'ять базових понять, які має знати кожен початківець. Допомагає розібратися в темі Олександр Сем'яніхін, Software Engineer в ЕРАМ.

Основні принципи ООП або Об’єктно-орієнтованого програмування — це лідер пошукових запитів розробників-початківців та альфа і омега мови програмування Java. Що це таке?

Це парадигма програмування, яка дозволяє представити програму у вигляді об’єктів, що взаємодіють між собою. Вона була створена для написання читабельного, безпечного коду, який легко підтримувати. Простими словами, ООП дозволяє читати код, як книгу. Три головні принципи ООП, які необхідно розуміти – це інкапсуляція, наслідування та поліморфізм.

Інкапсуляція

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

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

Наслідування (або успадкування)

Цей принцип дозволяє створити новий об’єкт на основі вже існуючого. Наприклад, виробник меблів зібрав шафу за певним кресленням. За відгуками покупців стало зрозумілим, що шафі не вистачає ще однієї полички. Конструктори не переробляють все креслення повністю, а лише додають елемент, якого бракує. Мовою розробників — додають додатковий стан цьому об’єкту.

Об’єкт «людина» відрізняється від об’єктів «водій» та «пішохід» станом «рух». Для того, щоб створити новий клас, не потрібно створювати об’єкт з нуля, достатньо успадкувати від об’єкту «людина» та додати новий стан.

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

Поліморфізм

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

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

Клас та об’єкт

В об’єктно-орієнтованій мові програмування Java поняття «клас» та «об’єкт» відіграють одну з ключових ролей. Для того, щоб наочно пояснити різницю між ними, повернемося до прикладу з шафою. Креслення, за яким було зібрано цей предмет інтер’єру — це клас, певна заготовка, з якою можна працювати, а власне шафа — об’єкт. За тим самим кресленням можна зібрати рожеву, білу або чорну шафу: клас визначає структуру та набір функцій об’єкту.

Система контролю версій Git

Команди розробників користуються системами контролю версій. Найчастіше — це Git. Для чого потрібні такі системи? Перш за все, вони вкрай необхідні в сучасних ІТ проєктах, коли над програмним рішенням можуть одночасно працювати сотні розробників. Git — це зручний функціональний інструмент для спільного створення коду. Саме тому на наших навчальних програмах ми приділяємо значну увагу вивченню Git.

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

Важливо не плутати Git, систему контролю версій, та GitHub – онлайн сховище історій версій проєктів. Git та GitHub часто використовують як єдиний механізм для роботи над проєктами.


В EPAM University ми пропонуємо чимало навчальних програм за напрямом Java для кандидатів із різним рівнем підготовки. Перегляньте перелік відкритих наборів за напрямом Java та долучайтеся до нас!