4.5 Расширенное управление доступом (часть 2)

Модификатор доступа protected

Особенности класса могут быть ограничены до некоторой степени с помощью защищенного модификатора доступа protected. В отличие от модификатора доступа public, модификатор доступа protected позволяет непосредственный доступ подклассам, данному классу и подклассам в различных пакетах. Модификаторы доступа protected используются, когда мы хотим ограничить доступ к некоторым особенностям класса.

В вышеупомянутой программе, сделайте следующие изменения.
В пакете asia измените public доступ к методу getCapital() на protected следующим образом:
public String get Capital () to protected String getCapital()

При компилировании программы 8 (b) будет отображена следующая ошибка:
America.Java:10: No method matching getCapital() found in class asia.China
System.out.println( Capital of China is + chn.getCapital() );
1 error


Так как класс America не является подклассом China, то метод getCapital () не доступен классу America.

Теперь измените класс America следующим образом:

Пример 9:
package america;
import asia.China;

class USA extends China
{
public USA()
          {
System, out.println ( Capital of China is + getCapital());
          }
public static void main(String args[])
          {
new USA();
          }
}

Скомпилируйте и выполните программу. Мы получим следующий вывод:
Capital of China is Beijing (Столицей Китая является Пекин)

Мы будем теперь знать, как класс в том же самом пакете может обращаться к защищенному методу.

Создайте файл korea.java со следующим кодом:

Пример 10:
package asia;
class China
{
int states;
boolean inAsia;
String capital;
public China()
          {
states = 26;
inAsia = true;
capital = new String( Beijing );
          }
protected String getCapital()
          {
return capital;
          }
}
public class korea
{
public static void main(String args [])
          {
China a = new China(); System.out.println( Capital of China is +a.getCapital());
          }
}


Сохраните и скомпилируйте файл. При выполнении файла результат вывода будет тот же самый
Capital of China is Beijing

Модификатор доступа protected не позволяет никакому классу обращаться к защищенным членам класса. Переменная, метод, внутренний класс и его методы могут быть защищены. Защита класса возможна если
Оба класса находятся в одном и том же пакете
Оба класса находятся в различных пакетах, но класс, к которому нужно обратиться, является подклассом главного класса.

назад к оглавлению вперед

Rus. Open Source company, г. Саратов
ул. Орджоникидзе, 156, офис 203
тел: 8 (8452) 57-84-41
e-mail: info@rus_opensource.com

Главная | Обзоры | О разном
Карта сайта

Учебная литература:

Введение в Linux
Основы JAVA
Архивы

© 2013 opensourcerules.net