Динамическая инициализация

Хотя в приведённых примерах в качестве начальных значений были использованы только константы, Java допускает динамическую инициализацию переменных посредством любого выражения, допустимого в момент объявления переменной.

Например, ниже приведена короткая программа, которая вычисляет длину гипотенузы прямоугольного треугольника по длинам катетов:

// Этот пример демонстрирует динамическую инициализацию.
class Dynlnit {
public static void main(String args[])
{ double a - 3.0, b = 4.0;
// динамическая инициализация переменной с
double с = Math.sqrt(a * а + b * b) ;
System.out.println("Гипотенуза равна " + с);
}
}

Эта программа объявляет три локальные переменные — a, b и с. Две первые, а и Ь, инициализируются константами. Однако третья, с, инициализируется динамически, принимая значение длины гипотенузы (в соответствии с теоремой Пифагора). Для вычисления квадратного корня аргумента программа использует встроенный метод Java, sqrt (), который является членом класса Math. В этом примере основной момент состоит в том, что в выражении инициализации можно использовать любые элементы, которые допустимы во время инициализации, в том числе вызовы методов, другие переменные или константы.