Лекция: Базовые принципы ООП – инкапсуляция, полиморфизм и наследование.

Класс является как бы шаблоном, на основе которого создаются экземпляры класса или объекты.

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

1)Инкапсуляции – объединение записей с процедурами и функциями, работающими с этими записями. Работа с данными и детали её реализации скрыты от внешнего пользователя объекта. Преимущества инкапсуляции заключается в модульности и изоляции кода объекта от другого кода программы.

Инкапсуляция –это скрытие полей внутри класса и оьъединение в классе информационных полей и процедур их обработки: методов и свойств.

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

Такая защита информационных полей повышает надёжность работы объекта, а соединение информационных полей и процедур действия упрощает визуализацию программирования.

Т.о. объекты получают возможность реагировать на события и субытийно управляемое программирование упрощается.

Динамический характер объектов, классов, полей, свойств, методов позволяет во-первых более оптимально использовать память и убыстрять работу, а так же виртуализировать объекты.

Виртуальные объекты — это объекты, которые имеют несколько вариантов и в различной ситуации действуют разные варианты. Виртуальными делают свойства и методы, есть просто в виртуальные, а есть динамические.

Инкапсуляция имеет следующие достоинства:

1) объект класса, у которого есть методы, обладает особыми свойствами, которыми недоступны другим типам данных. Особенно удобны методы для описания действий самого объекта. Например, объект кошка может догонять, убегать, подпрыгивать и т.д. и все это можно сделать в виде методов.

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

Возможность инкапсуляции появилась вместе с формированием процедурного типа данных, где элементом является процедура или функция определенного вида.

3) преимущества инкапсуляции заключается в модульности и изоляции кода объекта от другого кода программы.

2)Наследование – задание объекта, затем использование его для построения иерархии порожденных объектов с наследованием доступа каждого из порожденных объектов к коду и данным предка.

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

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

Построение такой иерархии-это нововведение.

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

1) часто объект достаточно сложен, что мешает спроектировать его свойства;

2) многие объекты подобны друг другу, но отличаются 2-3 свойствами. Неразумно дублировать их свойства при описании других классов.

Для решения данных проблем строят дерево наследования, начиная с определения корневого класса.

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

Преимущество наследования заключается в совместном использовании многими объектами общего кода.

3)Полиморфизм – задание одного имени действию, которое передается вверх и вниз по иерархии объектов, с реализацией этого действия способом, соответствующим каждому объекту в иерархии. Означает «много форм». Это свойство объектов переопределять методы наследуемого класса. Это значит, что вызов метода объекта для переменной приведёт к выполнению кода, конкретного экземпляра класса, соответствующего данной переменной. Работает, главным образом, через указатели.

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

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

<Имя потомка> =object<имя предка>поле;…поле; метод;…метод;end;

Если объекты имеют идентичную структуру и отличаются только значениями свойств, то в таких случаях в программе создаётся новый тип, основанный на единой структуре объекта, он называется классом, а каждый конкретный объект, имеющий структуру этого класса- экземпляр класса. Класс имеет заранее заданные свойства. Класс знает, как решать определённые задачи, т.е. располагает методами решения. Но обычно класс не используется в программах. Класс является как бы шаблоном, на основе которого создаются экземпляры класса или объекты.

еще рефераты
Еще работы по информатике