原则
1. java有两种方式import一个类
(1) import 类全名, 例如import com.test.TestUtil
(2) import 包名.* , 例如import com.test.* #注,包下面的子包不会被导入,即com.test.util.下面的类不会被引入。
(3) 当前package下面的类默认是自动被导入的,其优先级介于(1)和(2)之间。
2. java import的先后顺序无关
3. java不允许两种使用第(1)种方式导入的同名的类,编译器就报错 。
java不允许两种使用第(2)种方式导入的同名的类,编译器就报错, The type TestUtil is ambiguous 。
java允许使用一个第(1)种和第(2)种方式导入同名的类,但是实际引用会采用第一种导入的类,即强限定名的优先。
举例来说
如果存在package
1. com.test 包含主类 TestMain和工具类TestUtil { public TestUtil() { System.out.println("com.test.TestUtil"); } }
2. com.test.util1包含同名工具类TestUtil { public TestUtil() { System.out.println("com.test.util1.TestUtil"); } }
3. com.test.util2包含同名工具类TestUtil { public TestUtil() { System.out.println("com.test.util2.TestUtil"); } }
TestMain函数的实现
public static void main(String args[]) {
TestUtil util = new TestUtil();
}