ホームページ  >  記事  >  Java  >  パッケージアクセスの例

パッケージアクセスの例

Patricia Arquette
Patricia Arquetteオリジナル
2024-09-29 06:16:01650ブラウズ

Exemplo de Acesso a Pacote

提示された例では、Book クラスと BookDemo クラスが同じパッケージに属しており、標準アクセスでは同じパッケージ内のすべてのメンバーに可視性が付与されているため、BookDemo は問題なく Book にアクセスできます。

ただし、Book クラスと BookDemo クラスが異なるパッケージにある場合、BookDemo は Book にアクセスできません。他のパッケージから Book を使用できるようにするには、Book クラスに 3 つの変更を加える必要があります。

  • Book クラスを public として宣言します。これにより、bookpack パッケージの外部からクラスにアクセスできるようになります。
  • Book コンストラクターをパブリックにします。これにより、他のパッケージで Book インスタンスを作成できるようになります。
  • show() メソッドを public として宣言します。これにより、bookpack パッケージの外部で呼び出すことができます。

コード例: 公開された書籍

  1. bookpack パッケージ内の Book クラスの定義 (ファイル: 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();
    }
}

例: 別のパッケージから書籍にアクセスする

  1. bookpackext パッケージから Book を使用する (ファイル: UseBook.java) この例では、UseBook は別のパッケージ (bookpackext) にあるクラスであり、Book を使用するには、クラス名を完全なパッケージ名 (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();
        }
    }
}

変更点の説明:

書籍クラスの資格:
Book クラスの前にはパッケージ名 (bookpack.Book) が付けられ、クラス定義の場所をコンパイラーに指示します。
この修飾がなければ、UseBook クラスは bookpack パッケージ内で Book を見つけることができません。

Book クラスに必要な変更:
パブリック クラス: パブリック クラス Book 宣言により、元のパッケージの外部から Book にアクセスできるようになります。
パブリック コンストラクター: 別のパッケージから Book クラス オブジェクトを作成できるようにします。

パブリック show() メソッド: 書籍の詳細をブックパック パッケージの外に表示できるようにします。

コンパイルと実行のディレクトリ構造:

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

考慮事項:
別のパッケージからパブリック クラスにアクセスする場合、完全修飾名を使用するか、インポート ステートメントを使用して、各インスタンスを修飾せずにクラスを使いやすくすることができます。
この例では、クラス メンバーの可視性 (パブリック、プライベートなど) とパッケージごとの修飾を使用してコードをモジュール化し、Java プログラムの異なる部分間のアクセスを制御する方法を示します。

以上がパッケージアクセスの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。