Your SlideShare is downloading. ×
Java. Lecture 02. Classes and Objects
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Java. Lecture 02. Classes and Objects

1,665
views

Published on

Published in: Technology, News & Politics

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

  • Be the first to like this

No Downloads
Views
Total Views
1,665
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
35
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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