Page 28 - 4657
P. 28
Якщо в двох пакетах, що підключаються за допомогою
форми оператора import із зірочкою, є класи з однаковими
іменами, однак ви їх не використовуєте, транслятор не
відреагує. А от при спробі використати такий клас, ви відразу
одержите повідомлення про помилку, і вам прийдеться
переписати оператори import, щоб явно вказати, клас якого
пакета ви маєте через.
class MyDate extends Java.util.Date { }
Обмеження доступу
Java надає кілька рівнів захисту, що забезпечують
можливість тонкого настроювання області видимості даних і
методів. Через наявність пакетів Java повинна вміти працювати
ще з чотирма категоріями видимості між елементами класів:
- Підкласи в тім же пакеті;
- Не підкласи в тім же пакеті;
- Підкласи в різних пакетах;
- Класи, що не є підкласами і не входять у той же пакет.
У мові Java мається три рівні доступу, обумовлених
ключовими словами: private (закритий), public (відкритий) і
protected (захищений), що вживаються в різних комбінаціях.
Вміст осередків таблиці визначає приступність змінної з даною
комбінацією модифікаторів (стовпець) із На перший погляд усе
це може показатися надмірно складним, але є кілька правил, що
допоможуть вам розібратися. Елемент, оголошений public,
доступний з будь-якого місця. Усе, що оголошено private,
доступно тільки усередині класу, і ніде більше. Якщо в елемента
взагалі не зазначений модифікатор рівня доступу, то такий
елемент буде видний з підкласів і класів того ж пакета. Саме
такий рівень доступу використовується в мові Java за
замовчуванням. Якщо ж ви хочете, щоб елемент був доступний
ззовні пакета, але тільки підкласам того класу, якому він
належить, вам потрібно оголосити такий елемент protected. І
нарешті, якщо ви хочете, щоб елемент був доступний тільки
підкласам, причому незалежно від того, чи знаходяться вони в
26