Rumah  >  Artikel  >  Java  >  Contoh Akses Pakej

Contoh Akses Pakej

Patricia Arquette
Patricia Arquetteasal
2024-09-29 06:16:01526semak imbas

Exemplo de Acesso a Pacote

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:

  • Isytiharkan kelas Buku sebagai umum: ini menjadikan kelas itu boleh diakses di luar pakej pek buku.
  • Jadikan pembina Buku awam: ini akan membolehkan anda membuat contoh Buku dalam pakej lain.
  • Isytihar kaedah show() sebagai umum: dengan cara ini, ia boleh digunakan di luar pakej buku.

Contoh Kod: Buku Dibuat Umum

  1. Mentakrifkan Kelas Buku dalam Pakej pek buku (fail: Book.java)
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

  1. Menggunakan Buku daripada Pakej bookpackext (fail: UseBook.java) Dalam contoh ini, UseBook ialah kelas yang terletak dalam pakej berbeza (bookpackext), dan untuk menggunakan Book, nama kelas perlu memenuhi syarat dengan nama pakej penuh (bookpack.Book).
// 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Bab dimensi dan antara mukaArtikel seterusnya:Bab dimensi dan antara muka