Java 中创建包
什么是 Java 中的包(Package)?
Package 是相关类的集合。它有助于将你的类组织成文件夹结构,并使其易于查找和使用。更重要的是,它有助于提高可重用性。
Java 中的每个包都有其唯一的名称,并将其类和接口组织到单独的命名空间或名称组中。
虽然具有相同名称的接口和类不能出现在同一个包中,但它们可以出现在不同的包中。这可以通过为每个包分配单独的命名空间来实现。
语法:-
package nameOfPackage;
让我们用一个例子来研究包。我们定义一个类和对象,然后在我们的包 p1 中编译它。编译之后,我们将代码作为 java 包执行。
步骤 1: 考虑以下代码,
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: 在这一步中,我们编译文件。
java demo.java
编译完成。创建一个类文件 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
步骤 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** 执行代码
Package - 注意事项:
- 为了避免命名冲突,包中给出了公司域名的名称,反之例如:com.tastones, com.microsoft,com.infosys 等
- 未指定包名时,类位于默认包(当前工作目录)中,并且包本身没有名称。因此,你可以提前执行分配。
- 在创建包时,应注意必须在任何其他
import
语句之前写入创建包的语句
//not allowed
import package p1.*;
package p3;
//correct syntax
package p3;
import package p1.*;
对于你在 Java 中创建的任何类,默认情况下都会导入* java.lang 包*。
Java API 非常广泛,包含几乎可以执行从数据结构操作到网络的所有编程任务的类。通常,你将在代码中使用 API文件。你可以看到 API 文档这里。