Контрольная работа: Программирование на Java

static {

for (int i = 0; i < LIMIT; i++) {

square[i] = i * i;

}

}

Статический блок запрашивается только один раз во время создания класса. Теперь не нужен конструктор, и можно вызывать статическую функцию getSquare() без предшествующего создания класса. Улучшенныйкодвыглядитследующимобразом:

public class SmallSquares {

private static final int LIMIT = 10;

private static final int[] square = new int[LIMIT];

static {

for (int i = 0; i < LIMIT; i++) {

square[i] = i * i;

}

}

public static int getSquare(int i) {

// Нет обработки ошибки, предположим,0<=i<limit

return square[i];

}

public static void main(String[] args) {

System.out.println("3 squared is " + getSquare(3));

}

}

Приведем пример применения блока динамической инициализации. Код в программе, ConstructorExample (пример конструктора), снова инициализирует массив целых чисел. Существует две версии конструктора. Первая - конструктор без аргумента, который по умолчанию определяет значение "Безымянный" ("Anonymous"). Во второй версии есть один аргумент: значение имя пользователя (userName). Конструкторы объединены, так как квадрат должен инициализироваться в каждом случае.


public class ConstructorExample {

private final String userName;

private final static int[] square = new int[10];

public ConstructorExample() {

this("Anonymous");

}

К-во Просмотров: 373
Бесплатно скачать Контрольная работа: Программирование на Java