📅  最后修改于: 2023-12-03 15:02:01.966000             🧑  作者: Mango
在Java中,导入语句(import statement)用于让程序员能够使用其他类、接口和包中声明的元素。有几种不同的导入语句可供使用。
最常用的导入语句是导入类(import class)语句。这些语句用于导入单个类,以便可以在代码中使用该类的所有公共成员。
import mypackage.MyClass;
在这个例子中,我们导入了 mypackage
包中的 MyClass
类。现在我们可以在代码中使用这个类的所有公共成员,而无需使用完全限定名(fully qualified name)。
另一种导入语句是导入包(import package)语句。这些语句用于导入整个包,以便可以在代码中使用该包中的所有公共类和接口。
import mypackage.*;
在这个例子中,我们导入了 mypackage
包中的所有公共类和接口。现在我们可以在代码中使用该包中任何公共类和接口而无需使用完全限定名。
请注意,不应该过多使用通配符导入语句(wildcard import statement),因为这样可能会导致类名冲突和代码可读性降低。
Java 5 中引入了另一种导入语句:静态导入(static import)。这些语句用于导入静态成员(字段或方法)以便可以在代码中直接使用它们,而无需使用类或接口名称。
import static java.lang.Math.*;
在这个例子中,我们导入了 java.lang.Math
类中的所有静态成员。现在我们可以在代码中使用 sin()
、cos()
、sqrt()
等方法而无需使用 Math
类名称。
请注意,静态导入不应该过度使用,因为这可能会降低代码可读性。
有时可能会存在名称冲突(name conflict),即两个不同的类或接口具有相同的名称。在这种情况下,必须使用完全限定名称(fully qualified name)指定要使用的类或接口。如果需要同时使用两个具有相同名称的类或接口,则必须使用不同的导入语句来引入每个名称,然后使用完全限定名称来区分它们。
import mypackage1.MyClass;
import mypackage2.MyClass;
...
mypackage1.MyClass obj1 = new mypackage1.MyClass();
mypackage2.MyClass obj2 = new mypackage2.MyClass();
在这个例子中,我们导入了 mypackage1.MyClass
和 mypackage2.MyClass
两个具有相同名称的类。现在我们可以使用完全限定名称来创建和引用这两个类的实例。
通过导入语句,Java 程序员可以更轻松地使用其他类、接口和包中声明的元素。导入类、导入包和静态导入是最常用的导入语句。在处理名称冲突时,必须使用完全限定名称来区分不同的类或接口。