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

this.userName = userName;

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

square[i] = i * i;

}

}

public void printSquare(int i) {

// no error handling - assume 0<=i<limit

System.out.println("Hello " + userName);

System.out.println(i + " squared is " + square[i]);

}

public static void main(String[] args) {

new ConstructorExample().printSquare(3);

new ConstructorExample("Ed").printSquare(5);

}

}

Откомпилируем и запустим ConstructorExample. В итоге получим следующий результат:

Hello Anonymous (привет Безымянный)

3 squared is 9 (3 в квадрате будет 9)

Hello Ed (Привет Эд)

5 squared is 25 (5 в квадрате будет 25)

В приведенном выше примере квадрат инициализируется не правильно в зависимости от того, вызывает ли пользователь конструктор без аргумента или использует сигнатуру, требующую строку (String). Пример конструктора можно привести в порядок, переместив поле инициализатора для имени пользователя (userName) и введя следующий блок инициализатора:

{

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

square[i] = i * i;

}

}

Данный блок инициализаторов выглядит как блок статического инициализатора без статического ключевого слова. Он запускается перед тем, как вызвать конструктор.

Можно разделить конструкторы в примере (ConstructorExample), передвинув следующие строки от конструктора без аргумента:

this("Anonymous");

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