一、作用
- 提供多层的命名空间,解决命名冲突,区分相同名字的类。(处于不同package中的类可以拥有相同的名字)
- 对类按功能进行分类,使得项目的组织更加清楚,且当类很多时,可以很好的管理类
- 控制访问范围
二、换包命令
打包命令一般放在文件开始处。package com.自定义名字; //例子
三、命名规范
小写字母 比如 com.yddcc。
四、引入包
引入一个包的主要目的要使用该包下的类
import java.awt.*;
五、在命令提示符下运行添加package后的java文件
在D:\workspace\test\src\test目录下有两个.java文件A.java和B.java。
package test;
import test.B;
public class A {
public static void main(String[] args) {
B b=new B();
b.print();
}
}
package test;
public class B {
void print(){
System.out.println("ok!");
}
}
- 编译:
- 用命令提示符执行javac语句编译A ,会显示错误。因为在A中调用了B中的方法,所以只编译A,B是不会被编译的。
- 解决方法:要么同时编译A.java、B.java,要么先编译B.java再编译A.java。
在cmd中,
(1)进入目录D:\workspace\test\src中,执行命令 javac .\test\ *.java 。此时A和B两个文件同时编译通过了
(2)进入目录D:\workspace\test\src\test中,在cmd中执行命令 javac *.java 。
- 运行:
- 切换到D:/workspace/test/src/目录下,在cmd中执行java A,运行会报错。
- 切换到D:/workspace/test/src/test 目录下,在cmd中执行java A依然会报错。
- 解决方法:由于之前的编译的时候是在package所在的目录,那么执行的时候要执行test下的A文件。在D:\workspace\test\src 目录下执行java test.A ,运行成功。