一、包的概念
——是一组类的集合
一个包可以包含若干个类文件,还可包含若干个包。
——包的作用
①将相关的源代码组织在一起
②类名的空间管理,利用包来划分名字空间,便可以避免类名冲突
③提供包一级的封装及存取权限
注释:包实际上提供了一种命名机制与可见性限制机制。
二、包的命名
——每个包的名字必须是“独一无二”的;
——java中包名的规范是使用小写字母
——命名方式建议
①将机构的Internet域名反序,作为包名的前导
②若包名中有任何不可用于标识符的字符,用下划线替代
③若包名中的任何部分与关键字冲突,后缀下划线
④若包名中的任何部分以数字或其他不能用作标识符起始的字符开头,前缀下划线
三、包的声明
——命名的包(Named Packages) 格式:package 包名1[.包名2[.包名3]...]; ——默认包 当源程序中没有声明类所在的包时,java将类放在默认包中,这意味着每个类使用的名字必须不相同,否则会发生名字冲突,就像在一个文件夹下的文件名不能相同一样,默认包就相当于一个文件夹。四、编译单元与类空间
——一个Java源代码文件称为一个编译单元,由五部分组成
①package //声明包,0或1个(0个即省略,则属于默认包)
②Import //导入包,0或多个,用于导入外部的类
③public class //声明公有类,0个或一个,文件名与该类名相同
④class //声明类,0或多个
⑤interface //声明接口,0或多个
——一个编译单元中只能有一个public类,该类名与文件名相同,编译单元中的其他类往往是public类的辅助类,经过编译,每个类都会产一个class文件
——利用包来划分名字空间,便可以避免类名冲突
五、包与目录
——Java使用文件系统来存储包和类
——类名是文件名,包名就是文件夹名,即目录名
——目录名并不一定是包名
——用javac编译源程序时,由于包层次的根文件夹是由环境变量ClassPath来确定的,所以告诉程序在哪才能找到java的包由环境变量ClassPath完成,如遇到当前目录(包)中没有声明的类,就会以环境变量classpath为相对查找路径,按照包名的结构来查找。因此,要指定搜寻包的路径,需设置环境