Package (包)就是用来解决这个问题的。通过将同名的类放到不同的包里面,我们就可以:
如果出现了名字相同的类怎么办?两个名字相同的User类,其内涵是否也一样呢?如果不一样,要如何区分它们呢?
例如有两个 User 类,把它们分别放到包 p1 和 p2 中,就得到两个不同的类: p1.User 和 p2.User。
1.对同名的类进行区分;
2.精确地指明我们需要其中的哪一个;
3.让同名的类在一个程序当中共存。
为什么这么说呢?因为每个类都会属于一个包,那些没有指定属于哪个包的类,我们认为它们属于缺省包(default package)。实际上,一个完整的类名就是包名与类名的组合。比如当我们说 Date
类时,通常指的是 java.util.Date
类。要使用这个类,我们需要给出完整的类名。下面是一个例子:
public static void main(String[] args) { System.out.println("现在是 " + new java.util.Date()); }
import 的用法,简单的说就是,在源代码的开头声明了 import java.util.Date;
之后,下面的源代码中使用 Date
类就无需用完整的类名了:
import java.util.Date; public static void main(String[] args) { System.out.println("现在是 " + new Date()); }
注意:所以 import 的作用很简单,就是省略包名,减少不必要的重复。不过它不是万能的,如果你要在一个 java 文件中同时使用 java.util.Date
和 java.sql.Date
的话,那么 import 就只能适用其中的一个,另一个你还得用完整的类名。
最后对于一个初学者来说,把package理解为一个文件夹就可以了!