Ja va允许把多个类收集在一起构成为一组,称作包(package),包便于组织任务,以及使自己的任务和其他人提供的代码库相分离
简单来说,包就是一种组织类的绝佳方式。你可以把用途相关的类,无论数量多少,都归拢到一个包里。这就像给你的代码文件分门别类地建立文件夹,管理起来一目了然。
Ja va中用package语句来将一个Ja va源文件中的类打包一个包,package语句作为Ja va源文件的第一条语句,指明该文件中定义的类所在的包,(若缺省该语句,则指定为无名包),它的格式为:package pkg1[.pkg2[.pkg3…]]
那么,具体怎么定义一个包呢?关键在于文件开头的package语句。它必须是Ja va源文件的第一行“有效代码”,用来声明这个文件里的类属于哪个包。格式就像一串用点号连接的路径名。如果源文件里压根没写这条语句,那这个类就会被归入一个默认的“无名包”里,这通常只适用于一些简单的测试场景。
为了能使用Ja va中已提供的类,我们需要用import语句来引入所需要的类,格式为:import package1[.package2…].(classname |*)
定义好自己的包之后,如何调用别人写好的类呢?这就轮到import语句登场了。它的作用就是引入你需要的、位于其他包中的类。你可以精确导入某个具体的类,也可以用通配符`*`导入整个包(不过,一般建议精确导入,避免命名冲突)。
光说理论可能有点抽象,我们直接看个例子就明白了。
首先,我们创建一个cam1类,并把它放到Package1这个包里:
package Package1;
public class cam1
{
public static int num=0;
}
然后,在另一个类cam2中,我们导入并使用它:
import Package1.cam1;
public class cam2
{
public static void main(String args[])
{
cam1 a=new cam1();
a.num++;
System.out.println(a.num);
}
}
这段代码的输出结果会是:1
整个过程很清晰:cam1类被写入Package1包中,然后在cam2类里通过import引入并调用。
在整个JDK API中,有很多包,如ja va.lang包是Ja va基础语言包, 由于其使用频繁,所以在Ja va语言中,该包是被默认引入的,再如ja va.util包等,下面使用Date类,并输出日期
说到包,就不得不提Ja va庞大的标准库——JDK API。这里面预定义了海量实用的包。比如,ja va.lang包封装了最核心的语言基础类(像String、System),由于太常用了,Ja va编译器会自动为我们导入,无需手动写import。
再比如常用的ja va.util包,里面包含了很多工具类,日期时间类Date就是其中之一。我们来看一个具体使用的例子:
import ja va.util.Date;
public class cam2
{
public static void main(String args[])
{
Date a=new Date();
System.out.println(a.getDate());
}
}
运行这段代码,它会输出当前日期中的“日”部分,例如:6(假设今天是6号)。
通过这个例子,你可以看到,合理利用包和导入机制,能让我们轻松调用强大的系统功能,这正是Ja va生态高效有序的秘诀之一。
