
Лекции Java / 01. Основные понятия и принципы ООП. Язык программирования Java.pptx
.pdf
Функциональность пакетов
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 |