Dalam contoh yang dibentangkan, kelas Book dan BookDemo tergolong dalam pakej yang sama, membenarkan BookDemo mengakses Buku tanpa masalah, kerana akses standard memberikan keterlihatan kepada semua ahli dalam pakej yang sama.
Walau bagaimanapun, jika kelas Book dan BookDemo berada dalam pakej yang berbeza, BookDemo tidak akan dapat mengakses Book. Untuk membenarkan penggunaan Buku daripada pakej lain, tiga perubahan mesti dibuat pada kelas Buku:
Contoh Kod: Buku Dibuat Umum
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(); } }
Contoh: Mengakses Buku daripada Pakej Lain
// 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(); } } }
Penjelasan Perubahan:
Kelayakan kelas buku:
Kelas Buku didahului dengan nama pakej (bookpack.Book) untuk memberitahu pengkompil tempat untuk mencari definisi kelas.
Tanpa kelayakan ini, kelas UseBook tidak akan dapat mencari Buku dalam pakej buku.
Perubahan yang diperlukan pada kelas Buku:
Kelas awam: Pengisytiharan Buku kelas awam membenarkan Buku boleh diakses di luar pakej asalnya.
Pembina awam: membolehkan anda mencipta objek kelas Buku daripada pakej lain.
Kaedah rancangan awam(): supaya butiran buku boleh dipaparkan di luar pakej pek buku.
Struktur Direktori untuk Penyusunan dan Pelaksanaan:
src/ |-- bookpack/ | |-- Book.java | |-- bookpackext/ | |-- UseBook.java
Langkah untuk Menyusun dan Menjalankan:
Susun kelas Buku:
javac src/bookpack/Book.java
Kompilasi kelas UseBook dari direktori src:
javac src/bookpackext/UseBook.java
Jalankan Buku Penggunaan:
java -cp src bookpackext.UseBook
Pertimbangan:
Apabila mengakses kelas awam daripada pakej lain, anda boleh menggunakan nama penuh yang layak atau menggunakan penyata import untuk menjadikan kelas lebih mudah digunakan tanpa melayakkan setiap kejadian.
Contoh menunjukkan cara keterlihatan ahli kelas (awam, peribadi, dsb.) dan kelayakan setiap pakej digunakan untuk memodulasi kod dan mengawal akses antara bahagian berlainan program Java.
Atas ialah kandungan terperinci Contoh Akses Pakej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!