包
包是java中基本的存在,是一个java程序的基本运行单位,也是在总体环境下区分不同java的程序的单位。
java中的包简单的理解就是文件夹,每一个包下都以有.java文件和子包,一旦一个.java文件位于包下,那么需要在这个.java文件的第一行位置命名此类所处位置,同一个包下不能存在相同名称的.java文件。创建包时只需要在项目目录下创建文件夹即可。
包在.java文件中的基本使用格式:
如果java程序的路径结构如下:
com
cuggw
school
Main.java
那么在Main.java文件中包的书写格式如下:
package com.cuggw.school;
使用包
定义当前java类所属包:
//作为类文件第一行代码出现
package com.cuggw.school;
导入其他包下的类文件:
import 包名.类名;//如果是多级包,那么包名之间用 . 隔开
import com.cuggw.school.Main;//导入com包下cuggw包下school包下的Main类。
包的作用
1、根据包规划程序,每个程序的基础都是包,同时也方便导入外部依赖。
2、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用,相当于把需要的类封装到一起。
3、不同包下可以有相同名称的.java文件,可能存在一种情况:类名相同但是实现的功能不同。这时就需要用到包将相同名称的类分隔开来。
4、访问限定的作用域有一部分是按照包来划分的,可以根据类的不同访问情况规划作用域并分配到各个包中。
package-info.java文件
每个包下都可以建立一个固定的package-info.java,并可以在其中定义类和包注解。
package-info.java文件不能通过ide内部的选项new Class创建,因为 “package-info”这个名字不符合java语言的class命名规范。所以必须通过新建一个文件并指定其后缀名创建。
package-info.java等同于普通的JAVA类文件,只是内部只能定义默认修饰符的类。
作用:
包上标注注解,@Taget注解的参数要包含ElementType.PACKAGE。
声明默认修饰符的类(默认修饰符的类的作用域只限于本包),比如定义一些只限于本包下的设置常量和者工具类,定义与普通类无两样。
提供包的注释描述,为了生成api文档。
包注解
包上标注注解,@Taget注解的参数要包含ElementType.PACKAGE。
在包上添加注解:
@包注解名称
package 包名;
在普通的java类文件中是无法在包名上方添加注解的。
获取包上的注解:
使用格式:
//利用反射创建包对象
String pkgName = "com.company"; //要写全包名
Package pkg = Package.getPackage(pkgName);
//获得包上的注解
Annotation[ ] annotations = pkg.getAnnotations();