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

Класи і об'єкти. В чому різниця?

ООП привносить нам два ключових поняття: Клас і Об'єкт. Клас – це абстрактний тип даних. З допомогою класу описується деяка сутність (її характеристики і можливі дії). Наприклад, клас може описувати студента, автомобіль і т. д. Описавши клас, ми можемо створити його екземпляр – об'єкт. Об'єкт – це вже конкретний представник класу.

Приклад

Припустимо, нам у програмі необхідно працювати з країнами. Країна – це абстрактне поняття. У неї є такі характеристики, як назва, населення, площа, прапор та інше. Для опису такої країни буде використовуватися клас з відповідними полями даних. Такі країни, як Росія і Україна будуть вже об'єктами (конкретними представниками типу країна).

Основні принципи об'єктно-орієнтованого програмування

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

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

Спадкування – дозволяє створювати новий клас на базі іншого. Клас, на базі якого створюється новий клас, називається базовим, а базується новий клас – спадкоємцем. Наприклад, є базовий клас тварина. У ньому описані загальні характеристики для всіх тварин (клас тварини, вага). На базі цього класу можна створити класи спадкоємці Собака, Слон зі своїми специфічними властивостями. Всі властивості і методи базового класу при спадкуванні переходять в клас спадкоємець. Більше про спадкування читайте в уроці Спадкування в Сі-шарп.

Поліморфізм – це здатність об'єктів з одним інтерфейсом мати різну реалізацію. Наприклад, є два класи, Коло і Квадрат. В обох класів є метод GetSquare(), який вважає і повертає площа. Але площа кола і квадрата обчислюється по-різному, відповідно, реалізація одного і того ж методу різна. Більше про поліморфізм читайте в уроці Поліморфізм в Сі-шарп.

Абстракція – дозволяє виділяти з деякої сутності тільки потрібні характеристики і методи, які в повній мірі (для поставленої задачі) описують об'єкт. Наприклад, створюючи клас для опису студента, ми виділяємо тільки необхідні його характеристики, такі як ПІБ, номер залікової книжки, група. Тут немає сенсу додавати поле вага або ім'я його кота/собаки і т. д.

Автор Swytos                                              << попереднянаступна >>                                                 До змісту


2016-05-29 • Просмотров [ 146 ]