
- •БФУ им. И.Канта
- •Платформа Java. Основные версии и продукты Java
- •Платформа Java
- •Основные версии и продукты Java
- •Стандартные библиотеки Java
- •Система именования версий
- •Java 1.1
- •Java 2
- •Java 7
- •Методология процедурно- ориентированного программирования
- •Методология процедурно- ориентированного программирования
- •Методология структурного программирования
- •Методология и принципы объектно- ориентированного программирования
- •Методология объектно- ориентированного программирования
- •Моделирование задачи в ООП
- •Достоинства ООП
- •Понятие объекта, класса.
- •Понятие объекта
- •Состояние
- •Поведение
- •Уникальность
- •Классы
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •Процедурный полиморфизм
- •Типы отношений между классами
- •Достоинства и недостатки объектно- ориентированного программирования
- •Достоинства ООП
- •Достоинства ООП
- •Достоинства ООП
- •Недостатки ООП
Достоинства ООП
•Сокращается время на разработку, которое может быть отдано другим задачам.
•Компоненты многоразового использования обычно содержат гораздо меньше ошибок, чем вновь разработанные, ведь они уже не раз подвергались проверке.
•Когда некий компонент используется сразу несколькими клиентами, улучшения, вносимые в его код, одновременно оказывают положительное влияние и на множество работающих с ним программ.
•Если программа опирается на стандартные компоненты, ее структура и пользовательский интерфейс становятся более унифицированными, что облегчает ее понимание и упрощает использование.
Недостатки ООП
•Документирование классов - задача более трудная, чем это было в случае процедур и модулей. Любой метод может быть переопределен, в документации должно говориться не только о том, что делает данный метод, но и о том, в каком контексте он вызывается. Для абстрактных методов, которые пусты, в документации должно говориться о том, для каких целей предполагается использовать переопределяемый метод.
•В сложных иерархиях классов поля и методы обычно наследуются с разных уровней. И не всегда легко определить, какие поля и методы фактически относятся к данному классу. Если конкретный класс расширяется, то каждый метод обычно сокращают перед передачей сообщения базовому классу. Реализация операции рассредотачивается по нескольким классам, чтобы понять, как она работает, приходится внимательно просматривать весь код.
•Методы, как правило, короче процедур, поскольку они осуществляют только одну операцию над данными, зато их намного больше. В коротких методах легче разобраться, но они неудобны тем, что код для обработки сообщения иногда "размазан" по многим маленьким методам.
•Инкапсуляцией данных не следует злоупотреблять. Чем больше логики и данных скрыто в недрах класса, тем сложнее его расширять. Отправной точкой должно быть не то, что клиентам не разрешается знать о тех или иных данных, а то, что клиентам для работы с классом этих данных знать не требуется.
•Многие считают, что ООП является неэффективным на этапе выполнения, при распределении памяти и излишне универсализированным. Однако, если классы используются лишь там, где это действительно необходимо, то потеря эффективности из-за повышенного расхода памяти и меньшей производительности незначительна. Кроме того, надежность программного обеспечения и быстрота его написания часто бывает важнее, чем производительность.