包(package)
对类文件进行分类管理。
给类提供多层命名空间。
写在程序文件的第一行。
类名的全称是 包名.类名。
包也是一种封装形式。
package packa; import packb.*;
class Demo1 { public static void main(String[] args) { System.out.println("my class Demo1"); ShowDemo s = new ShowDemo(); s.show(); } }
package packb;
public class ShowDemo { public void show() { System.out.println("ShowDemo run"); } }
E:\java1201>javac -d d:\myclass ShowDemo.java
E:\java1201>javac -d d:\myclass Demo1.java
E:\java1201>set classpath=d:\myclass
E:\java1201>java packa.Demo1
classpath
给jvm提供的一个环境变量。
指定类或者包所在的路径。
classpath变量值的最后有分号与无分号的区别。
思考:在开发时,分号是否需要呢?
包之间的访问
被访问的包中的类权限必须是public的。
类中的成员权限:public或者protected
protected是为其他包中的子类提供的一种权限
例程
四种权限
public protected default(默认权限) private
同一类中 ok ok ok ok
同一包中 ok ok ok
子类 ok ok
不同包中 ok
package packc;
public class FuDemo { protected void func() { System.out.println("Fushow func run"); } }
package packb; import packc.*;
public class ShowDemo extends FuDemo { public void show() { System.out.println("ShowDemo run"); func(); } }
package packa; import packb.*;
class Demo1 { public static void main(String[] args) { System.out.println("my class Demo1"); ShowDemo s = new ShowDemo(); s.show(); } }
比如packb中有两类,要在packa中全都建立对象访问,这两个类都需要public修饰,这时候是不行的。类前面加了public以后,类名必须与.java文件名保持一致。所以一个.java文件中不能存在两个或两个以上public类或者接口。需要在packb中分别存放成两个.java文件。
package packc;
public class FuDemo { protected void func() { System.out.println("Fushow func run"); } }
package packb; import packc.*;
public class ShowDemo extends FuDemo { public void show() { System.out.println("ShowDemo run"); func(); } }
package packb;
public class DemoC { public void method() { System.out.println("DemoC"); } }
package packa; import packb.*;
class Demo1 { public static void main(String[] args) { System.out.println("my class Demo1"); ShowDemo s = new ShowDemo(); s.show(); DemoC c = new DemoC(); c.method();
} }
![]()
import
简化类名。
一个程序文件中只有一个package,可以有多个import。
用来导包中的类,不导入包中的包。
通常写import mypack.Demo;
而不写import mypack.*;为什么?
建议不要让包名重复,建议用URL来定义,因为URL是唯一的:
package cn.itcast.demo
package cn.itcast.test
......
Jar包
Java的压缩包
方便项目的携带。
方便于使用,只要在classpath设置jar路径即可。
set classpath=d:\myclass\mypack.jar
java packa.Demo1
数据库驱动,SSH框架等都是以jar包体现的。
Jar包的操作
通过jar.exe工具对jar的操作。
创建jar包
jar -cvf mypack.jar packa packb
查看jar包
jar -tvf mypack.jar >定向文件
![黑马程序员_包(package)笔记 - 油菜花 - 油菜地 黑马程序员_包(package)笔记 - 油菜花 - 油菜地](http://img1.ph.126.net/d5x469SPT7FkdG6GGyKchQ==/6608423323724465467.jpg)
解压缩
jar -xvf mypack.jar
自定义jar包的清单文件
jar -cvfm mypack.jar mf.txt packa packb
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net