- •Тема 1. Вступ до дисципліни
- •Тема 2. Управління ходом дій операторів програми
- •Тема 3. Ініціалізація та завершення дії змінних
- •Тема 4. Реалізація і специфікатори доступу
- •Тема 5. Успадкування в Java та його особливості
- •2. Розробка програмних систем складної структури
- •Тема 10. Створення вікон і аплетів
- •Тема 11. Розподільне програмування
- •1. Вступ до мовного середовища. Ознайомлення з мовним середовищем. Початкові відомості про мовне середовище java
- •1.1. Виконання Java-програми
- •Питання і завдання
- •1.4. Інтегроване середовище jBuilder
- •2. Постулати об'єктно-орієнтованого програмування
- •2.1. Модель і абстракція
- •2.2. Ієрархія та успадкування
- •2.4. Класи, їх структура та зміст
- •3. Управління ходом дії операторів програми
- •Питання і завдання
- •4.1. Ініціалізація за допомогою конструктора
- •4.2. Конструктор без параметрів
- •4.3. Перевантаження методів
- •4.4. Ініціалізація членів класу
- •5. Реалізація
- •6. Успадкування в java та його особливості
- •Завдання для самостійного опрацювання теми
- •7. Динамічне зв'язування (поліморфізм)
- •Завдання для самостійного опрацювання теми
- •8. Інтерфейси та внутрішні класи
- •Завдання для самостійного опрацювання теми
- •9. Обробка помилок і виключних ситуацій
- •Завдання для самостійного опрацювання теми
- •10. Система вводу/виводу в java
- •Завдання для самостійного опрацювання теми
- •Програма DirList.Java
- •11. Створення вікон і аплетів
- •Завдання для самостійного опрацювання теми
- •12. Створення додатків windows
- •12.1. Сім'я операційних систем Windows
- •12.2. Структура додатка Windows
4.3. Перевантаження методів
Перевантаження методів дає змогу викликати групи схожих методів з ідентичними іменами, але з різними параметрами.
Нехай існує клас виводу, який друкує значення деякої змінної, яку буде йому передано. Змінна може бути string, int або boolean. Зміст перевантаження полягає в тому, що викликаючий метод і не повинен знати про різні методи для друкування кожного типу, а має просто звернутися до методу за одним і тим самим іменем, забезпечити інший список параметрів. Java сам визначить, який метод викликати.
Приклад перевантажених методів.
class Output {
void print (string s) {
}
void print (int i) {
}
void print (boolean b) {
}
}
Перевантаження методів в дії
Int x = 6;
String s = «HiFi»;
Boolean b = false;
print (x); print (s); print (b);
4.4. Ініціалізація членів класу
Примітивні типи даних, які є членами, гарантовано мають отримати початкові значення.
Результат виконання програми дає змогу аналізувати отримані значення змінних.
//початкові значення за замовчуванням
class Measurement
boolean t;
char c;
byte b;
short s;
int i;
longj;
float f;
double d;
void print () {
System.out.println (
«тип даних Початкові значення\п»+
«boolean «+t+»\n»+
«char [<<+c+>>] «+(int)c+»\n»+
«byte «+b +»\n»+
«short «+s +»\n»+
«int «+i+»\n»+
«long «+l+»\n»+
«float «+f+»\n»+
«double «+d);
}
public class InitValue {
public static void main (string[]args)
{ Measurement d = new Measurement(); d.printQ;
new Measurement().print();
}
Примітивні об'єкти можуть явно ініціалізуватися не лише за замовчуванням, а й шляхом присвоєння початкових значень: class Measurement { boolean t=true; char c='y'; byte b=77; short s=0xff; inti=999; long 1 =4; float f= 3.14f; double d=2.71el4;
Так само можна виконувати ініціалізацію непримітивних об'єктів.
Завдання для самостійного опрацювання теми
Створити клас із конструктором без параметрів, який виводить на екран повідомлення. Створити об'єкт цього класу.
Додати до класу в завданні 1 перевантажений конструктор,в якого параметром є рядок String.
Необхідно створити масив посилань на об'єкти класу, який створено в завданні 2, але не створювати об'єкти для приєднання до масиву. При виконанні програми необхідно контролювати, чи не з'явилося на екрані повідомлення конструктора.
Закінчити завдання 3, приєднавши до посилань із масиву реальні об'єкти.
Необхідно створити масив із рядка String і присвоїти рядок кожному елементу масиву. Масив вивести на друк за допомогою циклу for.
Створити клас Prep (викладач) з перевантажувальним ме тодом bark (виступ). Метод має бути перевантажений в залежно від різноманітних примітивних типів даних і виводити повідомлення залежно від версії (лекція, семінар, консультація) перевантажувального методу. Написати метод main(), який викликає всі методи.
Створити клас без конструктора, а потім у методі mainQ створити об'єкт цього класу, щоб з'ясувати автоматичне синтезу вання конструктора за замовленням.
Створити клас із двома методами. У першому двічі зробити виклик іншого методу: один раз без використання ключового слова this, а другий — з його використанням.
Створити клас із двома (перевантаженими) конструкторами. Використовуючи ключове слово this, викликати другий конструктор з першого.
Створити клас із методом finalize(), який виводить повідомлення. У методі main() створити об'єкт вашого класу. Пояснити поводження програми.
Створити клас із іменем Тат (ємність), який можна наповнити і спорожнити і в якого є умова знищення — він має бути порожнім перед знищенням. Написати метод finalize(), який пе ревіряє цю умову знищення. У методі main() перевірити всі можливі випадки використання вашого класу.
Запустити програму Garbage.Java з різними параметрами командного рядка: «gc», «finalize» або «all». Повторити програму кілька разів і знайти закономірності в її результатах. Змінити програму, щоб метод System.runFinalizationQ виконувався перед викликом методу System.gc(), та переглянути результати.