包机制
- 为了更好地组织类,Java提供了包机制,用于区别类名地命名空间。
如何定义包
- 包语句地语法格式为:也就是定义包
package pkg1[. pkg2[. pkg3...]];
包的定义注意点
上图可以知道,报错了,为什么呢?因为 Demo01已经被定义过了。不能再使用了。
一般利用公司域名倒置作为包名;
这个是有规范的,比如: www.baidu.com 用这个建包的话,就是 :com.baidu.www。如下图:
如果只出现一个包,就要点击小齿轮,把 Compact Middle Packages 这一项取消。就能把隐藏的包显示出来。
再参照上图,建一个包,右击 scr 这个项目,点击New package。
- 为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用 “import” 语句可完成此功能。也就是导入包。
import package1[.package2...].(classname|*);
包的本质就是一个文件夹
比如,一个盘下面建一个 .txt 的文档文本,命名为 A ,则为 A.txt ,那么要再建一个 A.txt 的文档文本那么就会报错。
如图:
解决办法如下图:这个时候就需要分别建两个文件夹,一个文件夹命名为A,一个文件夹命名为B。然后一个文件夹中建一个A.txt,这样就可以实现存在两个 A.txt 文本文档 。
导包的三种方式
\1. 手动导包 import java.util.Scanner; 直接输入 import java.util.Scanner
\2. 快捷键导包 Alter + Enter
\3. 自动导包
导包中出现的问题
如下图:我们可以看到,我导了名一个为 Date 的包。可是左边方框中的所有项目和包都报红了,出现了红色波浪线。这是为什么呢?这是因为直接写 Date,编译器不知道我需要表达的意思,直接写 Date,编译器以为是有个变量命叫 Date,混淆不清。所以会报错!
如下图所例子:
那么如何正确导包呢?如下图所示:正确输入 Date,这个包名,就输入下面这一行。这样就不会报错了!
Date date = new Date();
通配符
再下图,可以看到下面有很多的类,Demo01-Demo06,这么多类。为了不一个一个导,这里要用到 * ,这个星号的意思是通配符。它会将这个包的东西都导入进来。
import com.baidu.zhanghao.*
作用就是为了导入这个包的所有类。