1、什么是包?
包的本质就是一个或多个文件夹。包的作用可简单总结为以下三点:
- 一是开发中避免类名重复问题;
- 二是对代码整理归类,将功能相近的类放到一个包中管理;
- 三是限定访问权限(default就是包访问权限)。
2、包的定义和使用:
- 定义:在java文件的首行使用 “package 包名” 定义,包名一般是网址倒过来的形式,使用小写字母。
package com.java;
public class Test{
public static void main(String[] args){
System.out.println("测试包");
}
}
- 编译命令
javac -encoding utf-8 -d . Test.java
// -d后面跟的是目录,表示Test.class文件的生成目录。
// 使用"." 表示在当前所在目录生成。
// -encoding utf-8 如果有汉字需要指定字符集
- 运行命令
java com.java.Test
//一旦定义了包名,在执行的时候就需要带上包名
这里我们来看一个包的简单使用例子:
首先,我在D盘下创建一个Test,java文件,将代码写入。
然后编译,可以看到生成的 test.class 文件就存放在com/java文件夹下。
最后带上包名运行,运行成功。
3、包的导入
如果需要在一个类中使用不同包中的类,那么就需要导入包。
- 导包命令
//导入Test类所在的包
import com.java.Test;
4、系统常用包
前面介绍了包的定义与使用,这种我们自己定义的包称为自定义包,Java中也提供了很多非常重要的包,我们称为系统包。
例如:java.util 包、java.lang 包等,使用非常频繁。
另外需要注意的是,我们在定义包的时候,要尽量避免与系统包重复。
5、访问权限控制:
总体上来看:private < default < protected < public
编号 | 范围 | private | default | protected | public |
---|---|---|---|---|---|
1 | 同一个包中的同一个类 | √ | √ | √ | √ |
2 | 同一包中的不同类 | √ | √ | √ | |
3 | 在不同包中的子类 | √ | √ | ||
4 | 在不同包中的非子类 | √ |