Для того чтобы воспользоваться классом Book в другом пакете, нужно применить оператор import, который будет рассматриваться в следующем разделе, либо указать полностью определенное имя класса, т.е. предварять имя класса именем пакета. Ниже приведен пример класса UseBook, содержащегося в пакете bookpackext. Для обращения к классу Book в нем используется полностью определенное имя этого класса. // Этот класс принадлежит пакету bookpackext. package bookpackext; // использовать класс Book из пакета bookpack. class UseBook { public static void main(String args[]) { // Перед именем класса Book указывается имя пакета bookpack. bookpack.Book books[] = new bookpack.Book[5]; books[0] = new bookpack.Book("Java: A Beginner's Guide", "Schildt", 2011); books[1] = new bookpack.Book("Java: The Complete Reference", "Schildt", 20011); books[2] = new bookpack.Book("The Art of Java", "Schildt and Holmes", 2003); books[3] = new bookpack.Book("Red Storm Rising", "Clancy", 1986); books[4] = new bookpack.Book("On the Road", "Kerouac", 1955); for(int i=0; i < books.length; i++) books[i].show; } }
Обратите внимание на то, что при каждом обращении к классу Book перед ним указывается имя пакета bookpack. Если бы здесь не использовалось полностью определенное имя, то при компиляции класса UseBook класс Book не был бы найден. Представление о защищенных членах классов
Начинающие программисты иногда неправильно пользуются модификатором доступа protected. Как пояснялось ранее, переменные и методы, объявленные защищенными (protected), доступны для классов, находящихся в том же самом пакете, а также для подклассов данного класса, независимо от того, каким пакетам эти подклассы принадлежат. Иными словами, член класса, объявленный как protected, доступен для подклассов, но защищен от доступа за пределами пакета.
Для того чтобы стало понятнее назначение модификатора доступа protected, рассмотрим следующий пример. Сначала изменим класс Book, объявив его переменные экземпляра защищенными, как показано ниже. // Объявление защищенными переменных экземпляра в классе Book, package BookPack; public class Book { // При объявлении этих переменных использован // модификатор доступа protected. protected String title; protected String author; protected int pubDate; public Book(String t, String a, int d) { title = t; author = a; pubDate = d; } public void show { System.out.println(title); System.out.println(author); System.out.println(pubDate); System.out.println ; } }