- •Тема 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
5. Реалізація
І СПЕЦИФІКАТОРИ ДОСТУПУ
Пакет і його особливості.
Специфікатори доступу.
Виконання імпорту для зміни поведінки.
Інтерфейс і реалізація.
Для забезпечення контролю за доступом до різних частин будь-якого написаного класу, його змінних методів використовується спеціфікатор доступу. Спеціфікатори доступу — це прості ключові слова, які вказуються перед елементами контролю.
Для регулювання інкапсуляції об'єкта мова Java надає три головних ключових слова:
public — означає, що клас, метод або змінна проглядатиметься об'єктами інших класів де завгодно;
private— означає, що до змінних і методів має доступ тільки поточний об'єкт;
protected забезпечує проміжний рівень доступу. Він діє як public стосовно класів, породжених даним класом. Для всіх інших класів в інших пакетах він схожий на private.
Зауважимо, що класи, методи та змінні за замовчуванням не є ні public, ні private, ні protected. Таким чином, якщо метод не має явного специфікатора доступу, то він проглядається тільки класами одного й того ж самого пакета.
1. Створити програму, в якій створюється об'єкт класу Array List, але не імпортується пакет java.util. *.
2. Перетворити фрагмент коду: import mypackage. *;
My class m =new My Class (); у такий, що компілює і виконує набір файлів Java.
3. Із фрагмента коду importcom. bruceeckel. *;
import java.util. *; скласти програму. Перевірити, чи існують суперечності дій.
4. Узагальнити клас: package com.bruceeckel.tools.;
public class P {
public static void rint(String s) { System, out.print(s) ;
}
public static void rintln(String s) { System.out.println (s);
додавши до нього всі перевантажені версії методів rint() і rintln(), необхідні для виводу всіх примітивних типів Java.
5. Змінити пропозицію import у файлі TestAssert.java, щоб включити і виключити механізм контролю:
importcom. bruceeckel. tools. *; public class TestAssert { public static void main(String[] args) { Assert. is_true((2+2) = = 5); Assert. isjalse((l + 1) ==2); Assert.is_true((2+2) ==5, «2+2==5»); Assert.is jalse((l + 1) ==2, «1+1 1=2»);
Створити клас, в якому існують дані і методи зі специфікаторами public, private, protected, а також «подружні». Створити об'єкт цього класу і переглянути повідомлення, які видає компілятор при зверненні до всіх членів класу. Пам'ятайте, що класи в поточні директорії є частиною пакета «за замовчуванням».
Створити клас із protected даними. Створити другий клас у цьому самому файлі, який маніпулює protected даними з першого класу.
8. Змінити клас public class Cookie {
public Cookie() {
System.out.print(«»);
}
protected void bite() {
System.out.println(«bite»);
}}
так, щоб метод bite() не був відкритим.
9. 3 файла Lunch.java
class Soup {
private Soup() {}
// (l) Дозвіл на створення об 'єктів
//у статичному методі
public static Soup makeSoup() {
return new Soup();
}
//(2) Створюємо один статичный об'ект // i на вимогу повертааю потання на нього,
private static Soup psl=new Soup();
public static Soup access() {
return psl;
}
public voidf {}
}
class Sandwich {
// Використовуємо клас Lunch
voidf() { newLunch();}
}
//У файлi може бути визначений тільки один
//public клас
public class Lunch {
void test() {
Soup priv2 = new Soup. makeSoup();
Sanwich f1 = new Sandwich();
Soup.access.f();
}
} III:~
створити клас з ім'ям ConnectionManager, який керує обмеженим масивом об'єктів Connection. Програміст не повинен безпосередньо створювати об'єкти Connection, а може отримувати їх за допомогою статичного методу в класі ComnectionManager. Коли у класі закінчиться запас об'єктів, то він має повертати посилання null. Перевірити класи в методі main().
10. Створити в локальній директорії такий файл:
package cO5. local;
class PackagedClass() {
public PackagedClass() {
System.out.println(«Cmворюємо клас в пакеті»);
}
}///:~
Потім створити в директорії c05.fore такий файл:
package с 05.fore;
import cO5. Local. *;
public class Fore {
public static void main (String [] args) {
PackagedClass pc = newPackagedClass ();
}
}///:~
Пояснити, чому компілятор видає повідомлення про помилку i що треба зробити?