Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Контрольные работы » Програмування на Java

Реферат Програмування на Java





йно, неоднозначний: в одних ситуаціях - конструкторами, в інших - блоками ініціалізації. Для додання початкових значень змінним класу у випадках, коли для цього потрібні складні алгоритми, можна користуватися тільки статичними блоками ініціалізації. Для ініціалізації полів об'єктів у загальному випадку краще користуватися конструкторами, але якщо необхідно виконати якийсь код ініціалізації до виклику успадкованого конструктора, можна скористатися блоком динамічної ініціалізації. p align="justify"> Наведемо кілька прикладів. Програма SmallSquares (маленькі квадрати) повертає квадрат маленького цілого числа. SmallSquares має дві статичні змінні і єдину відкриту статичну функцію getSquare (). br/>

public class SmallSquares {static final int LIMIT = 10; static final int [] square = new int [LIMIT]; SmallSquares () {(int i = 0; i

}

}

} static int getSquare (int i) {square [i];

} static void main (String [] args) {SmallSquares ();. out.println ("3 squared is" +

getSquare (3));

}

}


Відкомпілювати і запустивши SmallSquares, отримаємо наступний результат:


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


У даному коді об'єкт створюється за допомогою конструктора так званим статичним методом. p align="justify"> Наведемо приклад статичної ініціалізації. За словом статичний (static) йде блок коду, оточеного фігурними дужками. Можна використовувати статичний блок для ініціалізації масиву квадратів наступним чином:


static {(int i = 0; i

square [i] = i * i;

}

}

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


public class SmallSquares {static final int LIMIT = 10; static final int [] square = new int [LIMIT]; {(int i = 0; i

}

} static int getSquare (int i) {

// Ні обробки помилки, припустимо, 0 <= i

return square [i];

} static void main (String [] args) {. out.println ("3 squared is" + getSquare (3));

}

}


Наведемо приклад застосування блоку динамічної ініціалізації. Код в програмі, ConstructorExample (приклад конструктора), знову ініціалізує масив цілих чисел. Існує дві версії конструктора. Перша - конструктор без аргументу, який за замовчуванням визначає значення "Безіменний" ("Anonymous"). У другій версії є один аргумент: значення ім'я користувача (userName). Конструктори об'єднані, так як квадрат повинен ініціалізуватися в кожному випадку. p align="justify"> public class ConstructorExample {final String userName; final static int [] square = new int [10]; ConstructorExample () {("Anonymous");

} ConstructorExample (String userName) {. userName = userName; (int i = 0; i <10; i + +) {[i] = i * i;

}

} void printSquare (int i) {

// no error handling - assume 0 <= i

} static void main (String [] args) {ConstructorExample (). printSquare (3); ConstructorExample ("Ed"). printSquare (5);

}

}


Відкомпілюємо і запустимо ConstructorExample. У результаті отримаємо наступний результат:

Anonymous (привіт Безіменний)

squared is 9 (3 в квадраті буде 9) Ed (Привіт Ед)

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

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


{(int i = 0; i <10; i + +) {[i] = i * i;

}

}


Даний блок ініціалізаторів виглядає як блок статичного ініціалізатора без статичного ключового слова. Він запускається перед тим, як викликати конструктор. p align="justify"> Можна розділити конструктори в прикладі (ConstructorExample), пересунувши наступні рядки від констр...


Назад | сторінка 2 з 8 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Опісові композіційно-мовленнєві форми в творах Т. Прохаська &З цього можна ...
  • Реферат на тему: Анексія Криму, як можна вірішіті Конфлікт України с Россией чі можна его ві ...
  • Реферат на тему: Коли працювати можна менше ...
  • Реферат на тему: Шизофренія. Лікувати, не можна хворіти
  • Реферат на тему: Розробка на мові програмування С програми, що ілюструє роботу з символами, ...