一、包的用处
- 对类文件进行分类管理。
- 给类提供多层命名空间。
- 写在程序文件的第一行。
- 类名的全称的是 :包名.类名。
- 包也是一种封装形式。
package cn.itstu;
class PackageDemo
{
/*
用javac -d . PackageDemo.java 在当前目录下自动生成包的文件夹
【javac -d c:\ PackageDemo.java】在指定目录C盘下自动生成包的文件夹
注意:运行.class的文件时正确的类名是:java cn.itstu.PackageDemo
*/
public static void main(String args[])
{
System.out.println("hello package!!");
}
}
二、包与包之间的访问
package cn.itstu;
class PackageDemo
{
/*
将源文件编译打包到C:\myclass 文件夹下
*/
public static void main(String args[])
{
/* cmd输入命令
1.javac -d c:\myclass DemoA.java
2.set classpath=c:\myclass
3.javac -d c:\myclass PackageDemo.java
4.java cn.itstu.PackageDemo
*/
packa.DemoA d=new packa.DemoA();
d.show();
//packb.DemoB b=new packb.DemoB();
//b.method(); error 访问权限不够
}
}
package packa;
public class DemoA extends packb.DemoB //类的权限必须是public
{
public void show()//方法的权限也必须是public
{
System.out.println("demoa show run");
method();
}
}
package packb;
public class DemoB
{
/* public */ protected void method()
{
System.out.println("demob method run");
}
/*当method方法被public修饰,可以被其子类DemoA访问,
也可以被其他包的类访问,但是当method方法被protected
修饰,method方法只能被其子类访问。
*/
}
结论:
- 包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
- 不同包中的子类还可以直接访问父类中被protected权限修饰的成员。
- 包与包之间可以使用的权限只有两种,public protected。
public protected default private
同一类中 OK OK OK OK
同一包中 OK OK OK NO
子类 OK OK NO NO
其他类中 OK NO NO NO
三、导包 import
通过import我们可以简化类名的书写。
包名我们一般用url,因为url具有唯一性。如: package com.qq.demo;
导包:import com.qq.demo.*; //*是通配符,表示导入com.qq.demo包下的所有类,开发中推荐使用导入具体类名,需要哪个类导入哪个,可以节省内存开销,如:
import com.qq.demo.ClassA;
注意:我们导入两个包 import packa.*; import packb.*; 如果这两个包中有相同的类classA存在,我们在使用类的时候必须指明使用哪个包下的该类
如 :packa.ClassA a=new packa.ClassA();
packb.ClassA b=new packb.ClassA();
四、jar包
- Java的压缩包
- 方便项目的携带。
- 方便于使用,只要在classpath设置jar路径即可。
- 数据库驱动,SSH框架等都是以jar包体现的。
通过jar.exe工具对jar的操作。
• 创建jar包 jar -cvf mypack.jar packa packb
• 查看jar包 jar -tvf mypack.jar [>定向文件] 如:jar -tvf mypack.jar >c:\1.txt
• 解压缩 jar -xvf mypack.jar
• 自定义jar包的清单文件 jar –cvfm mypack.jar mf.txt packa packb
• 创建jar包 jar -cvf mypack.jar packa packb
• 查看jar包 jar -tvf mypack.jar [>定向文件] 如:jar -tvf mypack.jar >c:\1.txt
• 解压缩 jar -xvf mypack.jar
• 自定义jar包的清单文件 jar –cvfm mypack.jar mf.txt packa packb