Основни понятия в обектно-ориентираното програмиране ИЛИ моята матрица за ООП
За да освежа основните си познания по ООП, реших да препрочета невероятната книга „Обектно-ориентиран анализ и дизайн с примери за приложения“ от Грейди Буч

А сега за мързеливите и за себе си, аз съставих кратък конспект-измамнически лист за тази книга.
ООП креватче
Обектно ориентирано програмиране или ООП - това е начин за създаване на софтуерни компоненти въз основа на обекти.
Основни принципи на ООП
- абстракция
- капсулиране
- модулност
- йерархия
Абстракция Процесът на подчертаване на най-съществените характеристики на даден обект, разграничаването му от всички останали видове обекти, важен ли е от гледна точка на по-нататъшно разглеждане и анализ, и игнориране на по-малко важни или незначителни подробности.
Обекти и класове - Основни абстракции на домейни.
Капсулиране - това е процесът на отделяне един от друг на елементите на даден обект, които определят неговата структура и поведение; капсулирането служи за изолиране на договорните задължения на абстракцията от тяхното изпълнение.
Модулност - това е свойство на системата, свързано с възможността за нейното разлагане на редица вътрешно силно свързани, но слабо взаимосвързани подсистеми (части).
Модулността намалява сложността на системата, като позволява независимо развитие на отделни части.
Йерархия - това е подреждането на абстракциите, подреждането им по нива.
Пишете - начин да се предпазите от използване на обекти от един клас вместо друг или поне да контролирате такова използване.
Тип - прецизно характеризиране на набор от еднородни обекти, включително структура и поведение.
При силно писане (например на езика Oberon) използването на обекти от грешен тип е забранено; изисква се изрично преобразуване в необходимия тип. С по-малко строго писане подобни забрани отслабват. По-специално се допуска полиморфизъм - полисемия на имената. Една от проявите на полиморфизъм, използването на обект от подтип (наследник) като обект от супертип (предшественик).
Паралелизъм - това е свойството, което отличава активните обекти от пасивните.
Паралелизъм - наличие на няколко потока за управление едновременно в системата. Обектът може да бъде активен, т.е.може да породи отделен контролен поток. Различни обекти могат да бъдат активни едновременно.
Основни концепции на обектно-ориентирания подход или елементи на обектния модел

„Обект в ООП - това е обект, способен да съхранява своето състояние (информация) и да предоставя набор от операции (поведение) за проверка и промяна на това състояние. "
Предмет - материално образувание - обект или явление (процес) с ясно определени граници, личност и поведение.
Всеки обект има състояние, поведение и личност.
състояние обектът се определя от стойностите на неговите свойства (атрибути) и връзките с други обекти, той може да се променя с течение на времето.
Поведение определя действията на даден обект и неговата реакция на заявки от други обекти. Поведението е представено от набор от съобщения, възприемани от обект (операции, които обектът може да извърши).