一、包的用处
- 对类文件进行分类管理。
- 给类提供多层命名空间。
- 写在程序文件的第一行。
- 类名的全称的是 :包名.类名。
- 包也是一种封装形式。
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