n В случае нехватки памяти для создания очередного объекта виртуальная машина находит недостижимые объекты и удаляет их
n Процесс сборки мусора можно инициировать принудительно
n Для явного удаления объекта следует утратить все ссылки на этот объект и инициировать сбор мусора
n Взаимодействие со сборщиком осуществляется через системные классы java . lang . System и java . lang . Runtime
Вопрос 10 Инициализирующие блоки и выражения классов. Порядок создания экземпляра класса. 41-43 Лекция основные понятия и принципы ООП
Блоки инициализации
· Если некоторые действия по инициализации должны выполняться в любом варианте создания объекта, удобнее использовать блоки инициализации
· Тело блока инициализации заключается в фигурные скобки и располагается на одном уровне с полями и методами
· При создании объекта сначала выполняются инициализирующие выражения полей и блоки инициализации (в порядке их описания в теле класса), а потом тело конструктора
Блоки инициализации
class Body {
public long idNum;
public String name = "No Name";
public Body orbits = null;
private static long nextID = 0;
{
idNum = nextID++;
}
Body(String name, Body orbits) {
this.name = name;
this.orbits = orbits;
}
}
Статическая инициализация
class Primes {
static int[] knownPrimes = new int[4];
static {
knownPrimes[0] = 2;
for (int i=1; i<knownPrimes.length; i++)
knownPrimes[i] = nextPrime(i);
}
//nextPrime() declaration etc.
}
n Статический блок инициализации выполняет инициализацию контекста класса
n Вызов статического блока инициализации происходит в процессе загрузки класса в виртуальную машину
Вопрос 11 Точка входа программы. Порядок запуска программы. Способы запуска программы. 44-45 Лекция основные понятия и принципы ООП
Точка входа программы
n Метод
n Статический
n Доступный
n С параметрами-аргументами
n Без возвращаемого значения
class Echo {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++)
System.out.println(args[i] + " ");
System . out . println ();
}
}
Вопрос 12 Инкапсуляция и её реализация. 11, 48-49 Лекция основные понятия и принципы ООП
n Инкапсуляция
объединение данных и методов их обработки в одну сущность, приводящее к сокрытию реализации класса и отделению его внутреннего представления от внешнего
Реализация инкапсуляции
class Rectangle {
public int width, height;
}
n Значения публичных полей могут быть изменены извне объекта без его контроля
n Само по себе публичное поле – не нарушение инкапсуляции, пока…
n С его элементом состояния не связано поведение
n На значение не накладываются ограничения
n Его значение не связано со значениями других полей
Реализация инкапсуляции
class Rectangle {
private int width, height;
private int area;
public int getWidth() {
return width;
}
public int getHeight() {
return height;
}
public void setWidth(int width) {
this.width = width;
area = width * height;
}
public void setHeight(int height) {
this.height = height;
area = width * height;
}
public int getArea() {
return area;
}
}
n Приватные поля
n Публичные методы доступа
n Разделение внутреннего состояния и внешнего представления
n Сокрытие реализации (например, поля area может и не быть, а площадь может вычисляться прямо в методе getArea ())
Вопрос 13 Кодировка, структура исходного кода (комментарии, пробелы и лексемы). Виды лексем. 2-7 лекция Лексика языка Java
Кодировка
n Java ориентирован на Unicode
n Первые 128 символов почти
идентичны набору ASCII
n Символы Unicode задаются с помощью escape-последовательностей
\ u 262 f, \ uu 2042, \ uuu 203 d
n Java чувствителен к регистру!
Исходный код
Исходный код разделяется на:
n Пробелы
l ASCII-символ SP, \u0020, дес. код 32
l ASCII-символ HT, \u0009, дес. код 9
l ASCII-символ FF, \u000c, дес. код 12
l ASCII-символ LF, символ новой строки
l ASCII-символ CR, возврат каретки
l символ CR, за которым сразу следует символ LF
n Комментарии
n Лексемы
Комментарии
n // Комментарий
Символы после // и до конца текущей строки игнорируются
n /* Комментарий */
Все символы, заключенные между /* и */, игнорируются
n /** Комментарий */
Комментарии документирования
Дата: 2019-07-30, просмотров: 238.