Наріжні камені ООП
Об'єкт - це самостійний фрагмент коду, який знає про себе і може розповісти про це іншим об'єктам, якщо вони поставлять запитання, який він розуміє.
Об'єкт має властивості і методи. є питаннями, на які він може відповісти (навіть якщо вони не виглядають питаннями). Набір методів, на які об'єкт знає як реагувати, є його інтерфейсом. Деякі методи є загальнодоступними (public), це означає, що інший об'єкт може викликати (або активізувати) їх. Цей набір методів відомий під назвою public-інтерфейс.
Коли один об'єкт викликає метод іншого об'єкту, це називається передачею повідомлення. Ця фраза відповідає ГО-термінології, але найчастіше люди говорять "Викликати цей метод", а не "Передати це повідомлення". У наступному розділі ми розглянемо концептуальний приклад, який повинен прояснити все це.
Концептуальний приклад об'єкта
Припустимо, що ми маємо об'єкт Людина. Кожен об'єкт Людина має ім'я, вік, національність і стать. Кожен об'єкт Людина знає, як говорити і ходити. Один об'єкт може запитати у іншого про його віці, або може cказав, щоб інший об'єкт почав (або закінчив) переміщення. У термінах програмування ви можете створити об'єкт Person і призначити йому деякі змінні (наприклад, ім'я та вік). Якщо ви створили другий об'єкт Person, він може запитати у першого його вік або сказати йому почати переміщення. Він може зробити це шляхом виклику методів першого об'єкта Person.
Зазвичай концепція об'єкта залишається незмінною і в мові Deplhi і в інших об'єктно-орієнтованих мовах програмування, хоча реалізують вони її по-різному. Ця концепція універсальна. З цієї причини об'єктно-орієнтовані програмісти, незалежно від застосовуваного ними мови, спілкуються не так, як процедурні програмісти. Процедурні програмісти часто говорять про функції і модулях. Об'єктно-орієнтовані програмісти кажуть про об'єкти і часто говорять про них, використовуючи особисті займенники. Ви часто можете почути, як один ГО-програміст каже іншому: "Цей об'єкт Supervisor говорить тут об'єкту Employee" Дай мені свій ID ", оскільки він повинен призначити завдання для Employee".
Процедурні програмісти можуть вважати такий спосіб мислення дивним, але він є природним для ГО-програмістів. В їх програмному світі все є об'єктом (з деякими винятками в мові Delphi), а програми є взаємодія (або розмова) об'єктів між собою.
Об'єкт = Дані + Операції
На підставі цієї формули була розроблена методологія об'єктно-орієнтованого програмування (ООП).
Наприклад, об'єкт "кнопка" має властивість "колір". Значення кольору кнопка запам'ятовує в одному зі своїх полів. При зміні значення властивості "колір" викликається метод, який перемальовує кнопку.
До речі, цей приклад дозволяє зробити важливий висновок: властивості мають першорядне значення для програміста, що використовує об'єкт. Щоб зрозуміти суть і призначення об'єкта ви обов'язково повинні знати його властивості, іноді - методи, дуже рідко - поля (об'єкт і сам знає, що з ними робити).