Що таке OOP? - Принципи з прикладами - Переваги та недоліки

Зміст:

Anonim

Що таке OOP?

Об'єктно-орієнтоване програмування (або OOP) - парадигма програмування, в якій програми записуються та структуруються навколо об'єктів, а не функцій чи логіки. Тут об’єкти визначаються як поля даних, які мають унікальні атрибути та поведінку. Вони містять дані у вигляді атрибутів та процедур у вигляді методів. Об'єктні процедури можуть отримувати доступ та змінювати дані, наявні в об'єкті.

Існує багато мов OOP, найпопулярніша з них - на основі класу, де об’єкти будуть екземпляром класу. Клас - це контейнер для даних та процедур, також відомий як члени даних та функції членів. Розглянемо приклад предмета як автомобіля. Автомобіль має такі ознаки, як колір, марка, ємність палива тощо. У ньому є способи відображення поведінки автомобіля, як старт, прискорення, перерва тощо. Клас є кресленням атрибутів і методів і не займає місця, до тих пір, поки не буде зроблений об'єкт для цього класу.

Приклад :

class car
(
char name(20); // name and colour are attributes
char colour(20);
public void start()() //start is a method
);
void main()
(
car c1; //c1 is an object
)

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

Принципи ООП

Чотири основні принципи об'єктно-орієнтованого програмування - це інкапсуляція, абстракція, успадкування та поліморфізм.

1. Інкапсуляція:

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

2. Абстракція

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

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

3. Спадкування

Часто об'єкти схожі за функціональністю, поділяють частину логіки, але відрізняються в іншому. Тож як ми повторно використовуємо загальну логіку і відокремлюємо різні логічні? Цього можна досягти у спадок. У спадок ми створюємо новий клас, який називається дочірнім класом, який є похідним від існуючого класу, який називається батьківським класом, таким чином формуючи hier0archy класів. Дочірній клас повторно використовує поля даних та методи, які вимагає від батьківського класу, і самостійно реалізує унікальну функціональність.

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

4. Поліморфізм

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

Переваги об’єктно-орієнтованого програмування

  • Ідею реального світу можна продемонструвати, оскільки все в ООП трактується як об'єкт.
  • Оскільки ми використовуємо концепцію інкапсуляції, програми легше перевіряти та підтримувати.
  • Швидше розробляється код, оскільки ми розробляємо класи паралельно, а не послідовно.
  • OOP забезпечує більшу безпеку завдяки абстрагуванню даних. Зовнішній світ не може отримати доступ до прихованих даних.
  • Повторність можна досягти, використовуючи вже написані класи.

Недоліки об’єктно-орієнтованого програмування

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

Яким чином знання про ООП може допомогти в кар’єрному зростанні?

Багато основних модних мов в наші дні, такі як Java та Ruby, використовують об'єктно-орієнтовані концепції програмування. Мови OOP допомагають писати програмне забезпечення для таких додатків, як мобільні, веб-програми та ігри. У цих галузях високий заробіток, як найкращі можливості роботи програмістів у цих сферах. Легко перейти на різні технології та мови з основами ООП, і, таким чином, це розширює наші кар’єрні перспективи. Одним недоліком у цьому є досвід. Зазвичай компанії шукають практичного досвіду в мовах та концепціях OOP, тому рекомендується практикувати, коли ми йдемо в процесі навчання.

Висновок

Об'єктно-орієнтоване програмування спрощує процес програмування для нас. Він має багато значень, таких як повторне використання, ефективність та підтримка коду. Хоча спочатку може бути важко зрозуміти поняття OOPs, запевняю, фрукти будуть варті зусиль. Сподіваюся, ця стаття допомогла спростити ці поняття для вас!

Рекомендована стаття

Це було керівництвом щодо Що таке OOP? Тут ми обговорили поняття, визначення та принципи з перевагами та недоліками OOP. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Чи Hadoop з відкритим кодом?
  2. Що таке спадщина Java?
  3. Що таке багатопотокове читання в C #?
  4. Що таке веб-сервіси ASP.Net?