02 - Классы и Объекты

1,544
-1

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,544
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

02 - Классы и Объекты

  1. 1. Классы и Объекты в Java Основы ООП
  2. 2. Объекты – ключевое понятие объектно-ориентированных технологий оглядитесь: мы живём в мире взаимодействующих объектов!
  3. 3. Каждый объект характеризуется состоянием и поведением
  4. 4. Программные объекты <ul><li>Объекты в программных системах – аналоги объектов в реальном мире </li></ul><ul><li>Состояние хранится в полях </li></ul><ul><li>Поведение доступно через методы </li></ul>
  5. 5. Программные объекты <ul><li>Методы изменяют состояние объекта </li></ul><ul><li>Сокрытие внутреннего состояния объекта от посторонних глаз называется инкапсуляцией. Единственный способ изменить это состояние – вызвать метод объекта. </li></ul>
  6. 6. Программные объекты <ul><li>Состояние: </li></ul><ul><li>Скорость движения </li></ul><ul><li>Скорость вращения колёс </li></ul><ul><li>Конфигурация шестерней </li></ul><ul><li>Поведение: </li></ul><ul><li>Переключить передачи </li></ul><ul><li>Затормозить </li></ul><ul><li>Изменить темп </li></ul>
  7. 7. Программные объекты <ul><li>Основные преимущества: </li></ul><ul><li>Модульность </li></ul><ul><li>Повторное использование кода </li></ul><ul><li>Сокрытие внутреннего представления </li></ul><ul><li>Расширяемость и простота отладки </li></ul>
  8. 8. Класс – множество объектов, имеющих схожее поведение и свойства Класс – велосипед, объекты – мой вел , вел Хемуля , …
  9. 9. Классы и объекты в Java <ul><li>( пример: Bike.java) </li></ul>
  10. 10. Классы и объекты в Java <ul><li>Каждому классу – свой файл </li></ul><ul><li>Поля и методы могут чередоваться </li></ul><ul><li>Реализация метода не отделяется от объявления метода </li></ul>
  11. 11. Классы и объекты в Java <ul><li>Квалификаторы доступа в Java: </li></ul><ul><li>public – доступ имеют все </li></ul><ul><li>private – доступ имеют только объекты данного класса </li></ul><ul><li>protected – доступ имеют объекты данного класса и все объекты классов-потомков </li></ul><ul><li>По умолчанию – package private, то есть все классы из данного пакета имеют доступ </li></ul>
  12. 12. Классы и объекты в Java <ul><li>Модификатор доступа помещается перед каждым членом класса (не перед группой) </li></ul><ul><li>Все поля класса стоит помечать как private или protected </li></ul><ul><li>Хотя бы некоторые методы стоит помечать как public </li></ul><ul><li>Вообще, рекомендуется скрывать данные, и предоставлять методы для изменения состояния (как и в реальном мире) </li></ul>
  13. 13. Static Members <ul><li>Class Members vs. Instance Members </li></ul>
  14. 14. Как именовать классы, поля, методы?
  15. 15. Венгерская Нотация <ul><li>Использовалась в BCPL </li></ul><ul><li>Префикс указывает на тип данных </li></ul><ul><li>Была действительно нужна, поскольку в языке был только один тип данных </li></ul><ul><li>Сегодня осталось только как рудимент в WinAPI ( всякие szClassName). </li></ul><ul><li>В языках программирования с динамической типизацией ( Python, JavaScript, PHP) практически не используется </li></ul>
  16. 16. Правила именования <ul><li>Классы: CamelCase </li></ul><ul><li>Поля класса, методы: camelCase </li></ul><ul><li>Константы: ALL_CAPITALS_WITH_UNDERSCORES </li></ul><ul><li>Локальные переменные: camelCase </li></ul><ul><li>Код должен соответствовать Code Conventions for the Java Programming Language </li></ul>
  17. 17. Организация пространств имён <ul><li>Аналог пространства имён в Java – пакет ( package). </li></ul><ul><li>Пакеты имеют иерархическую структуру </li></ul><ul><li>Обычно именуются маленькими буквами </li></ul><ul><li>Одному пакету соответствует одна директория в файловой системе </li></ul>
  18. 18. Организация пространств имён <ul><li>(пример) </li></ul>
  19. 19. Упаковка приложений <ul><li>Форма распространения java- приложений – JAR- архив </li></ul><ul><li>Идеологически – набор кода и данных, которые нужны приложению для работы </li></ul><ul><li>Технологически – zip- архив с байт-кодом, ресурсами и метаданными (манифестом) </li></ul><ul><li>Запуск приложения: </li></ul><ul><li>$ java -jar my-app.jar </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×