Изучение объектно-ориентированного языка программирования невозможно без освоения трех парадигм: инкапсуляции, наследования и полиморфизма. Это равнозначные принципы и они являются "тремя китами" среды объектно-ориентированного программирования (ООП). Как мы увидим в данной статье, эти принципы легко понять, хотя от этого их значение не уменьшается. Инкапсуляция Начнем мы с понятия инкапсуляции. Если язык поддерживает инкапсуляцию, то это означает, что он предоставляет какой-либо механизм объединения данных и кода обработки этих данных (функций, методов и т.п.) в объект. Это объединение аналогично тому как завод или фабрика объединяет под своей крышей расходные материалы, а также станки и оборудования для переработки этого сырья в готовый продукт. Этот пример показывает, что, как и в случае с фабрикой, данные (сырье) и функции (станки) могли бы располагаться совершенно раздельно, условно говоря в разных концах города. Однако тогда не было бы речи об объекте (фабрике...