Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции Java / 01. Основные понятия и принципы ООП. Язык программирования Java.pptx

.pdf
Скачиваний:
163
Добавлен:
16.03.2015
Размер:
210.31 Кб
Скачать

Функциональность пакетов

nПозволяют группировать взаимосвязанные классы и интерфейсы в единое целое

nСпособствуют созданию пространств имен, позволяющих избежать конфликтов

идентификаторов, относящихся к различным типам

nОбеспечивают дополнительные средства защиты элементов кода

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

21

Способы реализации и доступ к пакетам

n Пакеты могут быть реализованы:

в виде структуры каталогов с файлами классов в виде jar-архива

n Путь к используемым пакетам указывается:

непосредственно при запуске JVM с помощью ключей

через переменную окружения CLASSPATH (по умолчанию CLASSPATH="")

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

22

Понятие имени

nИмена задаются посредством идентификаторов, указывают на компоненты программы

nПространства имен

пакеты

типы

поля

методы

локальные переменные и параметры

метки

n Имена типов бывают

составные (java.lang.Double)

простые (Double)

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

23

Душераздирающий, но корректный код

Пример зависимости имени от контекста

package Reuse;

class Reuse {

Reuse Reuse (Reuse Reuse) { Reuse:

for(;;) {

if (Reuse.Reuse(Reuse) == Reuse) break Reuse;

}

return Reuse;

}

}

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

24

Понятие модуля компиляции

nМодуль компиляции хранится в .java файле и является единичной порцией входных данных для компилятора

nСостоит из:

объявления пакета (указывает принадлежность типов в модуле к пакету) package mypackage;

выражений импортирования (добавляют другие классы в область видимости) import java.net.Socket;

import java.io.*;

объявлений верхнего уровня (описания классов и интерфейсов)

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

25

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

n Пакеты

java.lang, javax.swing, ru.ssau.tk

n Типы

Student, ArrayIndexOutOfBoundException Cloneable, Runnable, Serializable

n Поля

value, enabled, distanceFromShop

n Методы

getValue, setValue, isEnabled, length, toString

n Поля-константы

PI, SIZE_MIN, SIZE_MAX, SIZE_DEF

n Локальные переменные

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

26

Описание класса

Класс может содержать:

nполя

nметоды

nвложенные классы и интерфейсы

public class Body { public long idNum; public String name; public Body orbits;

public static long nextID = 0;

}

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

27

Модификаторы объявления класса

n public

Признак общедоступности класса (класс виден вне пакета)

n abstract

Признак абстрактности класса (класс не полностью реализует поведение)

n final

Завершенность класса (класс не допускает наследования)

n strictfp

Повышенные требования к операциям с плавающей точкой (результаты операций одинаковые на различных платформах)

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

28

Поля класса

nПо сути являются переменными: обладают типом, именем и значением

nОбъявление поля

[модификаторы] <тип> {<имя> [= <инициализирующее выражение>]};

n Примеры

double sum = 2.5 + 3.7, a;

public double val = sum + 2 * Math.sqrt(2);

nЕсли поле явно не инициализируются, ему присваивается значение по умолчанию его типа

(0, false или null)

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

29

Модификаторы полей класса

n n

модификаторы доступа

static

поле статично (принадлежит контексту класса, а не объекта)

n final

поле не может изменять свое значение после инициализации

n transient

поле не сериализуется (влияет только на механизмы сериализации)

n volatile

усиливает требования к работе с полем в многопоточных программах

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

30