03 ООП и UML

1,556 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,556
On SlideShare
0
From Embeds
0
Number of Embeds
45
Actions
Shares
0
Downloads
34
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

03 ООП и UML

  1. 1. ООП и UML Продолжение истории классов и объектов
  2. 2. Инкапсуляция – важный принцип ООП Однако, на инкапсуляции история классов и объектов не заканчивается
  3. 3. Наследование – создание новых классов с использованием уже описанных классов ( Simula, 1967 )
  4. 4. Наследование <ul><li>Уточнение : класс-потомок добавляет некоторые существенные черты к родительскому состоянию, добавляет особое поведение </li></ul><ul><li>Перекрытие : класс-потомок изменяет некоторые аспекты поведения класса-родителя, перекрывая методы последнего </li></ul><ul><li>Повторное использование кода : поведение и состояние можно изменять, не дублируя код </li></ul>
  5. 5. Круг – частный случай эллипса? Классическая проблема неправильного использования наследования
  6. 6. Наследование в Java <ul><li>Наследование с помощью ключевого слова extends </li></ul><ul><li>Только единичное наследование </li></ul><ul><li>Только public наследование </li></ul><ul><li>По умолчанию – наследование от java.lang.Object </li></ul><ul><li>К классу-родителю можно обратиться с помощью super </li></ul><ul><li>Наследование можно запретить, используя final </li></ul>
  7. 7. Перекрытие методов <ul><li>Для перекрытия методов достаточно в классе-потомке объявить метод с той же сигнатурой, что и в классе-родителе </li></ul><ul><li>Перекрытие методов можно запретить, пометив метод ключевым словом public </li></ul><ul><li>static методы нельзя перекрывать, их можно только скрывать </li></ul><ul><li>Начиная с Java 5, перекрывающие методы рекомендуется помечать аннотацией @Override </li></ul>
  8. 8. Абстрактные классы и методы <ul><li>Абстрактные методы не имеют тела. </li></ul><ul><li>Абстрактный метод помечается ключевым словом abstract </li></ul><ul><li>Если в классе есть абстрактный метод, то и класс необходимо пометить ключевым словом abstract </li></ul>
  9. 9. Полиморфизм – способность объектов одного типа вести себя подобно объектам другого типа
  10. 10. Наследование и полиморфизм <ul><li>( пример) </li></ul>
  11. 11. Множественное наследование <ul><li>В Java его нет. </li></ul><ul><li>Вместо него – интерфейсы. </li></ul>
  12. 12. Интерфейсы в Java <ul><li>Интерфейсы содержат только объявления методов и (или) констант </li></ul><ul><li>Реализация интерфейса – с помощью ключевого слова implements </li></ul><ul><li>Что будет, если реализовать не все методы интерфейса? </li></ul><ul><li>Для интерфейсов разрешено множественное наследование. </li></ul>
  13. 13. Разные замечания <ul><li>Проверить принадлежность к определённому типу можно с помощью instanceof ( работает и для классов, и для интерфейсов). </li></ul>
  14. 14. Основы UML <ul><li>UML – универсальный язык моделирования, созданный для прототипирования программного обеспечения и других систем </li></ul><ul><li>Идеология UML – система описывается в терминах взаимодействия объектов с помощью графических диаграмм </li></ul><ul><li>Диаграммы используются для формализации требований, выполнения анализа, проектирования решения и описания процесса развёртывания </li></ul>
  15. 15. Use Cases <ul><li>На диаграмме вариантов использования (use cases) изображаются возможные варианты использования системы </li></ul>
  16. 16. Диаграммы классов <ul><li>На диаграмме классов изображаются поля и методы классов, а также отношения между классами </li></ul>
  17. 17. Диаграммы классов <ul><li>На диаграмме классов, кроме прочего, изображается реализация и использование интерфейсов </li></ul>
  18. 18. Типы взаимосвязей <ul><li>Association (ассоциации) </li></ul><ul><li>Aggregation ( Агрегация ) – часть целого </li></ul><ul><li>Composition (Композиция) </li></ul>
  19. 19. Диаграммы последовательности <ul><li>Диаграммы взаимодействия описывают взаимодействие групп объектов в различных условиях </li></ul>

×