Java 包(Package)、权限修饰符、jar 包
包(Package)介绍
包:本质上就是文件夹。
包的作用
- 解决类名重复产生冲突的问题(后编译的类名会把前面的类名覆盖掉)。
- 便于软件版本的发布。
包的定义格式
- 都是小写字母。
- 多级包之间使用"."进行分割。
- 多级包的定义规范:公司的网站地址翻转(去掉 www)。
- 比如百度的网站址为 www.baidu.com,那么所定义的包的结构就是:com.baidu.自定义包名。
注意事项
- package 语句必须是程序的第一条可执行的代码。
- package 语句在一个 java 文件中只能有一个。
- 如果没有 package,默认表示无包名。
- 如果一个类加上了包语句,那么该类的完整类名就是:
包名.类名
生成包文件夹的编译
javac -d <class文件存放路径> <java源文件名>
导包
作用:简化书写
(误区:把一个类导入到内存中)
格式:
import 包名.类名; // 推荐使用
import 包名.*; // 会导致结构不清晰
注意事项:
- 一个 java 文件中可以出现多句导包语句。
- *号通配符可以匹配任何的类。
- java.lang 包(包括了 String、System 等类)是默认导入了 java 文件中的。
类与类之间的访问
-
同一个包下的访问:不需要导包,直接使用即可。
-
不同包下的访问:
- import 导包后访问
- 通过全类名(包名+类名)访问
-
注意:import、package、class 三个关键字的摆放位置存在顺序关系:
- package 必须是程序的第一条可执行的代码。
- import 需要写在 package 下面。
- class 需要在 import 下面。
权限修饰符
- protected:只可以被子类访问,不管子类是不是和父类在同一个包中,即
子类限制
修饰符。 - default:只可被同一个包中的其他类访问,而不管其他类是不是子类,即
包限制
修饰符。
jar 包
打 jar 包:使用 JDK 的 jar.exe
jar 包的作用:
- 方便用户快速运行一个项目。
- 提供工具类给别人使用。
格式:jar cvf <文件名.jar> <class文件或者文件夹>
注意事项:
- 一个程序打完 jar 包后必须要在清单文件上指定入口类,格式:
Main-Class: 包名.类名
- jar 包双击运行仅对于图形化界面的程序起作用,对控制台的程序不起作用。
- 如果要使用 jar 包里面的类,必须先设置 classpath 路径。