java. lecture 02. classes and objects

18
Классы и Объекты в Java Основы ООП

Upload: colriot

Post on 03-Dec-2014

1.874 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Java. Lecture 02. Classes and Objects

Классы и Объекты в JavaОсновы ООП

Page 2: Java. Lecture 02. Classes and Objects

• Java Programming Language– переменные примитивных типов

int , char, double

– переменные объектных типов (ссылки!)Integer, System, MyClass

– нет адресов, Сборщик Мусора– JavaDoc

• Java Platform– Java Virtual Machine– Java SE, Java EE– JRE, JDK

Page 3: Java. Lecture 02. Classes and Objects

Объекты – ключевое понятие объектно-ориентированных технологий

оглядитесь: мы живём в мире взаимодействующих объектов!

Каждый объект характеризуется состоянием и поведением

Page 4: Java. Lecture 02. Classes and Objects

Программные объекты

• Объекты в программных системах – аналоги объектов в реальном мире

• Состояние хранится в полях• Поведение доступно через методы• Методы изменяют состояние объекта

Сокрытие внутреннего состояния объекта от посторонних глаз называется инкапсуляцией. Единственный способ изменить это состояние – вызвать метод объекта.

Page 5: Java. Lecture 02. Classes and Objects

Программные объекты

Состояние:• Скорость движения• Скорость вращения колёс• Конфигурация шестерней

Поведение:• Переключить передачи• Затормозить• Изменить темп

Page 6: Java. Lecture 02. Classes and Objects

Программные объекты

Основные преимущества:• Модульность• Повторное использование кода• Сокрытие внутреннего представления• Расширяемость и простота отладки

Page 7: Java. Lecture 02. Classes and Objects

Класс – множество объектов, имеющихсхожее поведение и свойства

Класс – велосипед, объекты – мой вел, вел Хемуля, …

Page 8: Java. Lecture 02. Classes and Objects

Классы и объекты в Java

(пример: Bike.java)

Page 9: Java. Lecture 02. Classes and Objects

Классы и объекты в Java

• Каждому public классу – свой файл• Поля и методы могут чередоваться• Реализация метода не отделяется от объявления метода

Page 10: Java. Lecture 02. Classes and Objects

Классы и объекты в Java

Квалификаторы доступа в Java:• public – доступ имеют все• private – доступ имеют только объекты данного класса• protected – доступ имеют объекты данного класса, все

объекты классов-потомков и все классы из данного пакета

По умолчанию – package protected, то есть все классы из данного пакета имеют доступ

Page 11: Java. Lecture 02. Classes and Objects

Классы и объекты в Java

• Модификатор доступа помещается перед каждым членом класса (не перед группой)

• Все поля класса стоит помечать как private или protected• Хотя бы некоторые методы стоит помечать как public

Вообще, рекомендуется скрывать данные, и предоставлять методы для изменения состояния (как и в реальном мире)

Page 12: Java. Lecture 02. Classes and Objects

Static Members

• Члены объекта (Instance Members)– Принадлежат экземпляру класса (поля и методы в обычном

понимании)

• Члены класса (Class Members)– Принадлежат классу (могут быть использованы и без экземпляра

класса)

– Внутри статических методов нельзя обращаться к нестатическим членам

Page 13: Java. Lecture 02. Classes and Objects

Как именовать классы, поля, методы?

Page 14: Java. Lecture 02. Classes and Objects

Венгерская Нотация

• Использовалась в BCPL• Префикс указывает на тип данных• Была действительно нужна, поскольку в языке был только один

тип данных• Сегодня осталось только как рудимент в WinAPI (всякие

szClassName).• В языках программирования с динамической типизацией

(Python, JavaScript, PHP) практически не используется

Page 15: Java. Lecture 02. Classes and Objects

Правила именования

• Классы: CamelCase• Поля класса, методы: camelCase• Константы: ALL_CAPITALS_WITH_UNDERSCORES• Локальные переменные: camelCase

Код должен соответствовать Code Conventions for the Java Programming Language

Page 16: Java. Lecture 02. Classes and Objects

Организация пространств имён

• Аналог пространства имён в Java – пакет (package)• Пакеты имеют иерархическую структуру• Обычно именуются маленькими буквами• Одному пакету соответствует одна директория в файловой

системе

Page 17: Java. Lecture 02. Classes and Objects

Организация пространств имён

(пример)

Page 18: Java. Lecture 02. Classes and Objects

Упаковка приложений

• Форма распространения java-приложений – JAR-архив• Идеологически – набор кода и данных, которые нужны

приложению для работы• Технически – zip-архив с байт-кодом, ресурсами и метаданными

(манифестом)

Запуск приложения:

$ java -jar my-app.jar