Java 中的包:如何创建/导入包
什么是 Java 中的包?
Java 中的包 是类、子包和接口的集合。它有助于将您的类组织到一个文件夹结构中,并使其易于查找和使用。更重要的是,它有助于提高代码的可重用性。
Java 中的每个包都有其唯一的名称,并将其类和接口组织到一个单独的命名空间或名称组中。
同名的接口和类虽然不能出现在同一个包中,但可以出现在不同的包中。这可以通过为每个 Java 包分配一个单独的命名空间来实现。
语法:-
package nameOfPackage;
以下视频将带您完成创建包的步骤。
如果视频无法访问,请单击此处
让我们用一个例子来学习包。我们定义了一个类和对象,然后在我们的包 p1 中编译它。编译完成后,我们将代码作为java包执行。
如何创建包?
创建包是一项简单的任务,如下所示
- 选择包的名称
- 将 package 命令作为 Java 源文件的第一行代码。
- 源文件包含您要包含在包中的类、接口等
- 编译以创建 Java 包
步骤 1) 考虑下面的 Java 包程序:
package p1; class c1(){ public void m1(){ System.out.println("m1 of c1"); } public static void main(string args[]){ c1 obj = new c1(); obj.m1(); } }
在这里,
- 要将类放入包中,请在第一行代码中定义包 p1
- 创建一个类 c1
- 定义一个打印一行的方法 m1。
- 定义主方法
- 创建一个 c1 类的对象
- 调用方法m1
步骤 2) 在下一步中,将此文件保存为 demo.java
步骤 3) 在这一步,我们编译文件。
编译完成。创建了一个类文件 c1。但是,没有创建包?下一步有解决办法
第 4 步) 现在我们要创建一个包,使用命令
javac –d . demo.java
该命令强制编译器创建一个包。
“。” 运算符代表当前工作目录。
第 5 步) 执行代码时,它会创建一个包 p1。打开里面的java包p1会看到c1.class文件。
第 6 步) 使用以下代码编译相同的文件
javac –d .. demo.java
这里“..”表示父目录。在我们的例子中,文件将保存在 C 盘的父目录中
执行上述代码时保存在父目录中的文件。
第 7 步) 现在假设您想在我们现有的 java 包 p1 中创建一个子包 p2。然后我们将我们的代码修改为
package p1.p2; class c1{ public void m1() { System.out.println("m1 of c1"); } }
第 8 步) 编译文件
如下图所示,它创建了一个子包 p2,包内有 c1 类。
第 9 步) 要执行代码,请提及类的完全限定名,即包名后跟子包名后跟类名 -
java p1.p2.c1
这就是包的执行方式,并从代码文件中输出“m1 of c1”。
如何导入包
要创建一个类的对象(捆绑在一个包中),在您的代码中,您必须使用它的完全限定名称。
示例:
java.awt.event.actionListner object = new java.awt.event.actionListner();
但是,为您要使用的每个类键入长点分隔的包路径名可能会变得乏味。相反,建议您使用 import 语句。
语法
import packageName;
导入后,您可以在不提及其完全限定名称的情况下使用该类。
import java.awt.event.*; // * signifies all classes in this package are imported import javax.swing.JFrame // here only the JFrame class is imported //Usage JFrame f = new JFrame; // without fully qualified name.
示例 :导入包
步骤 1) 将代码复制到编辑器中。
package p3; import p1.*; //imports classes only in package p1 and NOT in the sub-package p2 class c3{ public void m3(){ System.out.println("Method m3 of Class c3"); } public static void main(String args[]){ c1 obj1 = new c1(); obj1.m1(); } }
步骤 2) 将文件另存为 Demo2.java。使用命令 javac –d 编译文件。 Demo2.java
步骤 3) 使用命令 java p3.c3 执行代码
包裹——注意事项:
- 为避免命名冲突,软件包以相反的公司域名命名,例如:com.guru99。 com.microsoft、com.infosys 等。
- 如果未指定包名,则类位于默认包(当前工作目录)中,并且包本身没有名称。因此,您可以更早地执行任务。
- 在创建包时,应注意创建包的语句必须在任何其他导入语句之前编写
// not allowed import package p1.*; package p3; //correct syntax package p3; import package p1.*;
java.lang 包 默认为您在 Java 中创建的任何类导入。
Java API 非常广泛,包含可以执行从数据结构操作到网络的几乎所有编程任务的类。通常,您将在代码中使用 API 文件。您可以在此处查看 API 文档。
java