Обектно-ориентиран
от Уикипедия, свободната енциклопедия
![]() |
Предлага се тази статия да се обедини със статията Обектно-ориентирано програмиране. |
[редактиране] Обектно-ориентирано програмиране
В компютърните науки, обектно-ориентираното програмиране, ООП за по-кратко, е парадигма в компютърното програмиране.
Основната идея зад обектно-ориентираното програмиране е, че една компютърна програма е съставена от отделни част, или обекти, за разлика от традиционното виждане, в което една програма е списък от инструкции, които компютърът изпълнява. Всеки обект е способен да получава съобщения, обработва данни и праща съобщения на други обекти.
Твърди се, че обектно-ориентираното програмиране дава повече гъвкавост, като прави по-лесно променянето на програми. То намира широка популярност в софтуерното инженерство на мащабни проекти. Поддръжниците на ООП заявяват, че ООП е по-лесно за учене от начинаещи програмисти, за разлика от по-ранни подходи и методики, както и че ООП подходът често е по-прост за разработване и поддържане.
[редактиране] Фундаментални концепции на обектно-ориентираното програмиране
Обектно-ориентираното програмиране набляга на следните концепции:
- Обекти - Пакетиране на данни и функционалност в отделни единици; обектите са основата за модуляризиране и структуриране на обектно-ориентирана компютърна програма. Обектите са самостоятелни единици и трябва да са лесни за идентифициране. Модуляризираността позволява на части от програмата да съответстват на отделни аспекти на проблема.
- Абстракция - Способност на програма да игнорира някои аспекти на информацията, която манипулира, т.е. възможността да се концентрира над основните проблеми. Всеки обект в системата служи като модел за абстрактен "актьор", който може да върши определена работа, да променя състоянието си, да дава информация за себе си и да "комуникира" с други обекти в системата, без да разкрива как точно са имплементирани свойствата му. Процеси, функции и методи също могат да бъдат абстрактни, и когато са такива, редица техники са нужни за да се разшири абстракцията.
- Капсулация (криене на информация) - Гарантира, че ползвателите на даден обект не могат да променят вътрешното състояние на обекта по неочакван начин; само собствените методи на обекта имат правото да манипулират неговото състояние. Всеки обект предоставя интерфейс, който определя как други обекти могат да взаимодействат с него.
- Полиморфизъм чрез изпращане на съобщения. Вместо да викат отделни функции, обектно-ориентираните езици предоставят възможността за изпращане на съобщения; специфичният метод, който отговаря на пратеното съобщение зависи от това на какъв точно обект бива изпратено съобщението. Например, ако птица получи съобщението "движи се бързо", тя ще размаха криле и отлети. Ако лъв получи същото съобщение, той ще размърда своите крайници и ще тича. И двете животни изпълняват едно и също действие, но по начин привичен за всяко от тях. По този начин, една променлива в програмния текст може да съдържа различни обекти по време на изпълнение на програмата и да извиква различни методи по различно време на изпълнение.
- Наследяване - Организира и помага на полиморфизма и капсулацията като позволява да бъдат дефинирани и създавани специализирани обекти от вече съществуващи обекти, които могат да споделят и разширяват свойства им, без да има нужда да ги реимплементират.