Принципы объектно-ориентированного программирования.

Преимущества Объектно-ориентированного программирования.

1) Построение сложных систем 2) Повышение надежности программного обеспечения 3) Улучшение сопровождения программного обеспечения. Возможность внесения изменений отдельных компонент изменения остальных частей 4) Расширение и масштабирование программного кода 5) Создание повторно используемого программного кода.

Под обьектом будем понимать понятие, абстракцию или любой предмет с четко очерченными границами, имеющий смысл в аспекте рассматриваемой проблемы. Введение объектов имеет следующие цели:

1) добиться большего понимания задачи;

2) введение основы для реализации на ЭВМ.

Состояние: одно из стабильных условий, в которых объект может существовать, охарактеризованных количественно; в любой момент времени состояние объекта

включает перечень свойств и их текущее значение, которые собственно

определяют поведение объекта.

Поведение: для каждого объекта существует определенный набор действий, который с ним можно произвести. Например, возможные действия с некоторым файлом: создать/закрыть/открыть/удалить и тд

Уникальность:это то, что отличает объект от других объектов.

Классы:шаблон поведения объектов определенного

типа с заданными параметрами, определяющими состояние. Все экземпляры одного класса (объекты, порожденные от одного класса) имеют один и тот же набор свойств и общее поведение, то есть одинаково реагируют на одинаковые сообщения.

Объектно-ориентированное программирование (ООП) — это методология программирования, опирающаяся на три базовых принципа:

1. инкапсуляцию;

2. наследование;

3. полиморфизм.

Инкапсуляция

Инкапсуляция— процесс отделения друг от друга элементов объекта, определяющих его внутреннее устройство и поведение от внешнего (интерфейса); говорят инкапсуляция скрывает реализациию класса. Поэтому понятия инкапсуляции и сокрытия информации можно считать синонимами при рассмотрении в Java. С целью реализации принципа инкапсуляции, каждый класс должен иметь все необходимые методы для обработки имеющихся данных. Инкапсуляция связывает в класс аттрибуты с методами которые имеют отношения к их обработке.

В соответствии с принципом инкапсуляции объект не должен получать прямой доступ к атрибутам другого объекта. Чтобы получить доступ к атрибутам класса необходимо обратиться к общедоступным public методам этого класса. А уже те могут получить доступ, по необходимости к другим методам этого класса или напрямую к атрибутам этого класса. При использовании объектно-ориентированного подхода не принято применять прямой доступ к свойствам какого-либо класса из методов других классов. Для доступа к свойствам класса принято задействовать специальные методы этого класса для получения и изменения его свойств.

Таким образом инкапсуляция приводит к следующему:

1) исключение возможности искажения данных или случайного несанкционированного их изменения 2) Упрощение процесса изменения структуры данных.

Наследование 

Наследование (inheritance) — это механизм создания нового класса на основе уже существующего используя структуру и поведение (одиночное наследование), или других (множественное наследование) классов. Наследование вводит иерархию «общее-частное», в которой подкласс наследует от одного или нескольких более общих суперклассов. Подклассы обычно дополняют или переопределяют унаследованную структуру и поведение.

Исходный класс называется — базовым илисуперклассом (класс предок), а класс потомок —подклассом. От потомков, в свою очередь, можно наследовать, получая очередных потомков. И так далее. Набор классов, связанных отношением наследования, называетсяиерархией классов. А класс, стоящий во главе иерархии, от которого унаследованы все остальные (прямо или опосредованно), называетсябазовым классом иерархии. В Java все классы являются потомками класса Object.

Абстрактный класс — это класс, методы которого не имеют реализации. Абстрактный класс включает то общее, что характерно целому набору классов. Применение абстрактных классов позволяет лучше понять взаимосвязи между существующими классами.

Полиморфизм 

Полиморфизм является фундаментальным понятием которым обозначают механизм использования одного и того же имени (переменной или метода) в классах, которые по разному реализуются (имеют различные действия). Следовательно, любой объект, обозначаемый полиморфным именем, будет по-своему реагировать в зависимости от контекста. На практике встречаются случаи когда объект должен иметь одно и тоже имя метода но их реализация отличается.

Добавить комментарий