4.5 Расширенное управление доступом
Модификаторы - ключевые слова, которые дают дополнительное значение коду и классам. Есть два типа или категории модификаторов:
Модификатор доступа
Недоступные модификаторы
Особенности класса типа:
Класс непосредственно
Его случайные переменные
Его методы и конструкторы
являются доступными или нет для других классов, в зависимости от используемого модификатора доступа.
Модификаторы доступа:
public
protected
private
Модификатор доступа public
Особенности класса доступны другим классам в пределах того же самого пакета или в различном пакете, только когда используется модификатор доступа public. Модификатор доступа public, делает класс доступным любому другому классу.
Следующая программа демонстрирует, как к методу public класса можно обратиться из другого класса, который находится в другом пакете.
Пример 8(a):
package asia;
public class China
{
int states;
boolean inAsia;
String capital;
public China() // constructor method
{
states = 26;
inAsia = true;
capital = new String( Beijing );
}
public String getCapital()
{
return capital;
}
}
Сохраните листинг как China.java, и скомпилируйте файл, используя javac команду c-d опцией. Это
Эта команда создаст каталог
asia в текущем каталоге
(JavaProgs) и разместит файл
China.class в каталоге
asia.
Создайте файл
america.java в текущем каталоге
(JavaProgs), и напечатайте следующую программу в этом файле.
Пример 8(b):
import asia.China;
class America
{
China chn;
public America()
{
chn = new China();
System.out.println( Capital of China is +chn.getCapital());
}
public static void main(String args[])
{
new America() ;
}
}
Скомпилируйте файл, используя команду
javac, и выполните файл America.class, используя команду
java. При выполнении команды мы получим вывод как показано ниже
Capital of China is Beijing
Класс
America может иметь доступ к методам класса
China, который находится в пакете
asia потому что
Класс China является классом с модификатором public, поэтому он доступен классу America
Метод getCapital является public методом.