Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误与异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 与框架

Java 类参考

Java 有用资源

Java - import 关键字



Java 的 import 关键字用于包的上下文中。这个 import 关键字是为了使用包的组件,其中包在 Java 中被用于防止命名冲突,控制访问,使类、接口、枚举和注解的搜索/定位和使用更容易等。

可以定义为相关类型(类、接口、枚举和注解)的组合,提供访问保护和命名空间管理。

Java 中一些现有的包有:

  • java.lang - 包含基本类

  • java.io - 输入、输出函数的类都包含在这个包中

程序员可以定义自己的包来组合一组类/接口等。这是一个很好的实践,可以将你实现的相关类组合在一起,这样程序员就可以很容易地确定这些类、接口、枚举和注解是相关的。

由于包创建了一个新的命名空间,因此不会与其他包中的名称发生任何名称冲突。使用包,更容易提供访问控制,也更容易找到相关的类。

如果一个类想要使用同一包中的另一个类,则不需要使用包名。同一包中的类无需任何特殊语法就可以相互找到。

示例

这里,一个名为 Boss 的类被添加到 payroll 包中,该包已经包含 Employee。然后 Boss 可以引用 Employee 类而无需使用 payroll 前缀,如下面的 Boss 类所示。

package payroll;
public class Boss {
   public void payEmployee(Employee e) {
      e.mailCheck();
   }
}

如果 Employee 类不在 payroll 包中会发生什么?然后 Boss 类必须使用以下技术之一来引用不同包中的类。

  • 可以使用类的完全限定名。例如:
payroll.Employee
  • 可以使用 import 关键字和通配符 (*) 导入包。例如:

import payroll.*;
  • 可以使用 import 关键字导入类本身。例如:
import payroll.Employee;

示例

package payroll;

public class Employee {
   public void mailCheck() {
      System.out.println("Pay received.");    
   }
}

示例

package payroll;

import payroll.Employee;

public class Boss {
   public void payEmployee(Employee e) {
      e.mailCheck();
   }
   
   public static void main(String[] args) {
      Boss boss = new Boss();
	  Employee e = new Employee();
      boss.payEmployee(e);
   }
}

输出

Pay received.

注意 - 一个类文件可以包含任意数量的 import 语句。import 语句必须出现在 package 语句之后和类声明之前。

包的目录结构

将类放入包中时会产生两个主要结果:

  • 正如我们在上一节中讨论的那样,包的名称成为类名称的一部分。

  • 包的名称必须与相应的字节码所在的目录结构匹配。

以下是管理 Java 文件的简单方法:

将类、接口、枚举或注解类型的源代码放在一个文本文件中,其名称是类型的简单名称,扩展名为 .java

例如:

// File Name :  Car.java
package vehicle;

public class Car {
   // Class implementation.   
}

现在,将源文件放在一个目录中,该目录的名称反映了类所属的包的名称:

....\vehicle\Car.java

现在,限定类名和路径名如下:

  • 类名 → vehicle.Car
  • 路径名 → vehicle\Car.java(在 Windows 中)

通常,公司使用其反转的互联网域名作为其包名。

示例 - 如果一家公司的互联网域名是 apple.com,那么其所有包名都将以 com.apple 开头。包名的每个组件对应一个子目录。

示例 - 如果公司有一个 com.apple.computers 包,其中包含一个 Dell.java 源文件,它将包含在一系列子目录中,如下所示:

....\com\apple\computers\Dell.java

在编译时,编译器为其中定义的每个类、接口和枚举创建一个不同的输出文件。输出文件的基名称是类型的名称,其扩展名为 .class

例如:

// File Name: Dell.java
package com.apple.computers;

public class Dell {
}

class Ups {
}

现在,使用 -d 选项编译此文件,如下所示:

$javac -d . Dell.java

文件将按如下方式编译:

.\com\apple\computers\Dell.class
.\com\apple\computers\Ups.class

您可以导入 \com\apple\computers\ 中定义的所有类或接口,如下所示:

import com.apple.computers.*;
java_basic_syntax.htm
广告
© . All rights reserved.