首页 >Java >java教程 >包访问示例

包访问示例

Patricia Arquette
Patricia Arquette原创
2024-09-29 06:16:01686浏览

Exemplo de Acesso a Pacote

在所提供的示例中,类 Book 和 BookDemo 属于同一个包,允许 BookDemo 毫无问题地访问 Book,因为标准访问授予同一包中所有成员的可见性。

但是,如果 Book 和 BookDemo 类位于不同的包中,BookDemo 将无法访问 Book。为了允许使用其他包中的 Book,必须对 Book 类进行三处更改:

  • 将 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 类对象。

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn