在所提供的範例中,類別 Book 和 BookDemo 屬於同一個包,允許 BookDemo 毫無問題地訪問 Book,因為標準訪問授予同一包中所有成員的可見性。
但是,如果 Book 和 BookDemo 類別位於不同的套件中,BookDemo 將無法存取 Book。為了允許使用其他套件中的 Book,必須對 Book 類別進行三個更改:
程式碼範例:公開圖書
package bookpack; // Agora a classe Book é pública para permitir o acesso a partir de outros pacotes. public class Book { private String title; private String author; private int pubDate; // Construtor público public Book(String t, String a, int d) { title = t; author = a; pubDate = d; } // Método público para exibir os detalhes do livro public void show() { System.out.println(title); System.out.println(author); System.out.println(pubDate); System.out.println(); } }
範例:從另一個套件存取圖書
// Esta classe está no pacote bookpackext. package bookpackext; // Usa a classe Book do pacote bookpack. class UseBook { public static void main(String args[]) { // Qualifica a classe Book com o nome do pacote para acessá-la. bookpack.Book books[] = new bookpack.Book[5]; // Cria uma lista de livros books[0] = new bookpack.Book("Java: A Beginner's Guide", "Schildt", 2014); books[1] = new bookpack.Book("Java: The Complete Reference", "Schildt", 2014); 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); // Exibe os detalhes de cada livro for (int i = 0; i < books.length; i++) { books[i].show(); } } }
變更說明:
書班資格:
Book 類別前面有套件名稱 (bookpack.Book),告訴編譯器在哪裡可以找到類別定義。
如果沒有這個資格,UseBook 類別將無法在 bookpack 套件中找到 Book。
Book 類別所需的變更:
公共類別:公共類別 Book 聲明允許 Book 在其原始套件之外被存取。
公共建構函式:可以從另一個套件建立 Book 類別物件。
Public show() 方法:以便可以在 bookpack 包外顯示書籍詳細資訊。
編譯執行的目錄結構:
src/ |-- bookpack/ | |-- Book.java | |-- bookpackext/ | |-- UseBook.java
編譯與執行步驟:
編譯 Book 類別:
javac src/bookpack/Book.java
從 src 目錄編譯 UseBook 類別:
javac src/bookpackext/UseBook.java
執行 UseBook:
java -cp src bookpackext.UseBook
注意事項:
當從另一個套件存取公共類別時,您可以使用完整限定名或使用 import 語句來使類別更易於使用,而無需限定每個實例。
此範例展示如何使用類別成員可見性(公有、私有等)和每個套件的限定來模組化程式碼並控制 Java 程式不同部分之間的存取。
以上是包訪問範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!