Объектно-ориентированное программирование. Развитие идей структурного и событийного программирования существенно подняло производительность труда программистов и позволило в разумные сроки (несколько
Развитие идей структурного и событийного программирования существенно подняло производительность труда программистов и позволило в разумные сроки (несколько месяцев) создавать приложения объемом в сотни тысяч строк. Однако такой объем уже приблизился к пределу возможностей человека, и потребовались новые технологии разработки программ.
Объектно-ориентированное программирование базируется на понятиях объекта, класса и на трех ключевых концепциях — инкапсуляции, наследовании и полиморфизме.
В языках программирования и реализовано понятие объектакак совокупности свойств(структур данных, характерных для этого объекта), и методових обработки (подпрограмм изменения свойств) и событий, на которые данный объект может реагировать и которые приводят, как правило, к изменению свойств объекта.
Объекты могут иметь идентичную структуру и отличаться только значениями свойств. В таких случаях в программе создается новый тип, основанный на единой структуре объекта (по аналогии с тем, как создаются новые типы для структур данных). Он называется классом, а каждый конкретный объект, имеющий структуру этого класса, называется экземпляром класса.
Объединение данных c методами в одном типе (классе) называется инкапсуляцией. Помимо объединения, инкапсуляция позволяет ограничивать доступ к данным объектов и реализации методов классов. В результате у программистов появляется возможность использования готовых классов в своих приложениях на основе только описании этих классов.
Важнейшая характеристика класса — возможность создания на его основе новых классов с наследованиемвсех его свойств и методов и добавлением собственных. Класс, не имеющий предшественника, называется базовым.
Например, класс «студент» имеет свойства «ФИО», «год поступления», методы «посещать занятия» и «сдавать экзамены». Созданный на его основе класс «студент-заочник» наследует все эти свойства и методы, к которым дополнительно добавляется свойство «место работы» и метод «приезжать на сессию» Наследование позволяет создавать новые классы, повторно используя уже готовый исходный код и не тратя времени на его переписывание.
В большинстве случаев методы базового класса у классов-наследников приходится переопределять — объект класса «студент-заочник» выполняет метод «посещать занятия» совсем не так, как объект класса «студент-очник». Все переопределяемые методы по написанию (названию) будут совпадать с методами базового объекта, однако компилятор по типу объекта (его классу) распознает, какой конкретно метод надо использовать, и не вызовет для объекта класса «студент-заочник» метод «посещать занятия» класса «студент». Такое свойство объектов переопределять методы наследуемого класса и корректно их использовать называется полиморфизмом.
Дата добавления: 2015-10-19; просмотров: 602;