Классы и Объекты в  Java Основы ООП
Объекты – ключевое понятие  объектно-ориентированных технологий оглядитесь: мы живём в мире взаимодействующих объектов!
Каждый объект характеризуется  состоянием и поведением
Программные объекты Объекты в программных системах – аналоги объектов в реальном мире Состояние хранится в полях Поведение доступно через методы
Программные объекты Методы изменяют состояние объекта Сокрытие внутреннего состояния объекта от посторонних глаз называется инкапсуляцией. Единственный способ изменить это состояние – вызвать метод объекта.
Программные объекты Состояние: Скорость движения Скорость вращения колёс Конфигурация шестерней Поведение: Переключить передачи Затормозить Изменить темп
Программные объекты Основные преимущества: Модульность Повторное использование кода Сокрытие внутреннего представления Расширяемость и простота отладки
Класс – множество объектов, имеющих схожее поведение и свойства Класс – велосипед, объекты – мой вел ,  вел Хемуля , …
Классы и объекты в  Java ( пример:  Bike.java)
Классы и объекты в  Java Каждому классу – свой файл Поля и методы могут чередоваться Реализация метода не отделяется от объявления метода
Классы и объекты в  Java Квалификаторы доступа в  Java: public  –  доступ имеют все private  – доступ имеют только объекты данного класса protected  – доступ имеют объекты данного класса и все объекты классов-потомков По умолчанию –  package private,  то есть все классы из данного пакета имеют доступ
Классы и объекты в  Java Модификатор доступа помещается перед каждым членом класса (не перед группой) Все поля класса стоит   помечать как  private   или  protected Хотя бы некоторые методы стоит помечать как  public Вообще, рекомендуется скрывать данные, и предоставлять методы для изменения состояния (как и в реальном мире)
Static Members Class Members vs. Instance Members
Как именовать классы, поля, методы?
Венгерская Нотация Использовалась в  BCPL Префикс указывает на тип данных Была действительно нужна, поскольку в языке был только один тип данных Сегодня осталось только как рудимент в  WinAPI ( всякие  szClassName). В языках программирования с динамической типизацией ( Python, JavaScript, PHP)  практически не используется
Правила именования Классы:  CamelCase Поля класса, методы:  camelCase Константы:  ALL_CAPITALS_WITH_UNDERSCORES Локальные переменные:  camelCase Код должен соответствовать  Code Conventions for the Java Programming Language
Организация пространств имён Аналог пространства имён в  Java –  пакет ( package). Пакеты имеют иерархическую структуру Обычно именуются маленькими буквами Одному пакету соответствует одна директория в файловой системе
Организация пространств имён (пример)
Упаковка приложений Форма распространения  java- приложений –  JAR- архив Идеологически – набор кода и данных, которые нужны приложению для работы Технологически –  zip- архив с байт-кодом, ресурсами и метаданными (манифестом) Запуск приложения: $ java -jar my-app.jar

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

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