Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
и не должен инициализировать final-поле, так как цепочка this-вызовов приведет к конструктору с super, в котором эта инициализация обязательно присутствует. Для иллюстрации порядка исполнения инициализирующих конструкций рассмотрим следующий пример:
public class Test { {
System.out.println("initializer");
}
intx, y=getY(); final int z; {
System.out.println("initializer2");
}
private int getY() {
System.out.println("getY() "+z); return z;
}
public Test() {
System.out.println("Test()"); z=3;
}
public Test(int x) { this();
System.out.println("Test(int)");
// z=4; - нельзя! final-поле уже было инициализировано
}
}
После выполнения выражения newTest() на консоли появится:
initializer getY() 0 initialized Test()
Обратите внимание, что для инициализации поля у вызывается метод 9efY(), который возвращает значение final-поля z, которое еще не было инициализировано. Поэтому в итоге поле у получит значение по умолча-10110 0, а затем поле z получит постоянное значение 3, которое никогда У*6 не изменится.
После выполнения выражения new Test(3) на консоли появится:
initializer getY() О initialized Test() Test(int)
Дополнительные свойства классов
Рассмотрим в этом разделе некоторые особенности работы с классами в Java. Обсуждение данного вопроса будет продолжено в специальной лекции, посвященной объектной модели в Java.
Метод main
Итак, виртуальная машина реализуется приложением операционной системы и запускается по обычным правилам. Программа, написанная на Java, является набором классов. Понятно, что требуется некая входная точка, с которой должно начинаться выполнение приложения.
Такой входной точкой, по аналогии с языками C/C++, является метод main(). Пример его объявления:
public static void main(String[] args) {}
Модификатор static в этой лекции не рассматривался и будет изучен позже. Он позволяет вызвать метод main(), не создавая объектов. Метод не возвращает никакого значения, хотя в С есть возможность указать код возврата из программы. В Java для этой цели существует метод System.exit(), который закрывает виртуальную машину и имеет аргумент типа int.
Аргументом метода main() является массив строк. Он заполняется дополнительными параметрами, которые были указаны при вызове метода.
package test.first;
public class Test {