package 包;
/**
一、package
在java中,管叫包,相当于文件夹。包里通常放的是类文件,因为我们在编写程序的时候,难免会有类名相同
的情况,就如我们的人名一样。为了对类进行分类管理,java就有了包的出现,在不同的包中可以有相同的类名,调用的时候连同包名一起就OK
包也是一种封装是形式。在包中可以有很多类文件,但是只提供一个类文件,供外界使用
二、包的作用
1、为避免多个类重名的情况,如果出现两个相同名字的类,可通过包将两者区分,从而避免冲突
2、对类文件进行分类管理,可以将相关的一些类放在同一个包中
3、给类提供多层命名空间,如a包中的Demo.class文件,如果要创建Demo对象,就要在使用时加上a
如:a.Demo d=new a.Demo();
4、包的出现可以将java的类文件和源文件相分离
三、规则
1、包必须写在程序第一行。因为要先有包,才知道类文件的存放地方
2、类的全称:包名.类名
3、编译定义了包的程序文件时,在编译时要指定包的存储目录
如:javac-d c:\mypackage类名.java
四、包之间的访问
1、要访问其他包中的类,需要定义类的全称:包名.类名
2、包如果不在当前路径,需要使用classpath设定环境变量,为jvm指明路径
3、被访问的包中的类权限必须是public的
4、类中的成员权限:public或者protected。protected是为其他包中的子类提供的一种权限.类公有后,被访问的成员也要公有才可以被访问
不同包中的子类可以直接访问父类中被protected权限修饰的成员。同一个包中,protected只作用为覆盖
四种权限
public protected default private
同一个类中 OK OK OK OK
同一个包中 OK OK OK no
子类 OK OK no no
不同包中 OK no no no
注:一个.java文件里面,不能出现两个以上的公有类或者接口。因为被public修饰的类名必须与java文件名相同。
五、包的导入——import
1、可以简化类名。在调用其他包中的类时,需要写类的全称,也就是连同包名一起书写。当类存在多层包中时,如:haha.hehe.pack.Demo,使用import导入后,使用其类时,就可以不加包名了。导入格式如:import haha.hehe.pack.Demo;
2、一个程序文件中只有一个package,可以有多个import。import导入的是包中的类,不导入包中的包。
3、注意事项:
a,在导入包时,如果包中有很多类,可以使用通配符 *来替代包中的所有类。但是,建议不要使用通配符 * ,因为将不需要使用的类导入后,会占用内存空间。所有在编写程序时,要使用包中的哪些类,就导入哪些类。
b,定义包名不要重复,可以使用url来完成定义,url是唯一的。如:package cn.itheima.Demo。
c,导入的不同包中有相同类时,必须写类的全名以区分,否则将会报错。
六、jar包
类越来越多,我们可以用包来装,当包越来越多时,我们可以将包进行压缩。而java中用jar这个工具来对包进行压缩。压缩后的后缀名为jar。
jar.exe工具的一些命令:
创建jar包
jar -cvf mypack.jar packa packb
查看jar包
jar -tvf mypack.jar [>定向文件]
解压缩
jar -xvf mypack.jar
自定义jar包的清单文件
jar –cvfm mypack.jar mf.txt packa packb
jar包的好处:
1、 可以将多个包进行压缩到为一个文件。方便项目的携带。
2、 方便于使用,只要在classpath设置jar路径,即可以执行jar包中的java程序。
3、 数据库驱动,SSH框架等都是以jar包体现的。
|
|