对类文件进行分类管理
对类提供多层命名空间
写在程序文件的第一行
类名的全称是 包名.类名
包也是一种封装形式
对于源文件,如果其中定义有包,在用的dos中编译需要加参数:
-d 指定包所存放的位置,后跟存放目录;当要存放在当前目录时-d . packageDemo.java
这里点表示当前目录;
当没有指定包的时候,系统默认指定存放在当前位置
包与包之间的访问:
类被public修饰,同时被访问的成员也要被public修饰,才能被访问
错误原因:package包不在当前目录下
需要设置classpath,告诉jvm去哪里找指定的package包
当不设置环境变量时,要访问的包要在当前目录下;否则,要设置环境变量,告诉到哪里能找到包;
错误原因:有了包,范围变大,一个包中的类要被访问,必须要有足够大的权限。
所以被访问的类要被public修饰。
**************A包******************************
package APack;
public class Demo {
public static void main(String [] args)
{
BPack.Demo p= new BPack.Demo(); //在A包中访问B包中的函数
p.show();
System. out.println( “A main”);
}
}
class Aclass
{
void show()
{
System. out.println( “APack.Aclass”);
}
}
****************B包*******************
package BPack;
public class Demo {
public void show()
{
System. out.println( “BPack.Bclass”);
}
}
包与包之间的类 可以具有继承关系
不同包中的子类可以形成继承关系,当继承关系存在后,子类可以自由访问父类中的对象;
引进关键字protected,意思是被保护的,修饰类中的成员。被protected修饰的成员,只能被子类使用;
protected “关键字《保护》”,修饰成员 ,给不同包中的子类提供权限。
总结:包与包之间访问,被访问的包中的类以及类中的成员,需要public修饰。
不同包中的子类还可以直接访问父类中被protected权限修饰的成员。
包与包之间可以使用的权限有两种,public,protected
public protected default private
同一类中 OK OK OK OK 《成员的访问相互访问》
同一包中 OK OK OK 《类之间的访问》
子类 OK OK
不同包中 OK
类名被public修饰以后,类名必须与java文件名保持一致
一个java文件中,只有一个被public修饰的接口或者类;
多层包目录
关键字import
为了简化类名的书写,使用一个关键字,import。
import Apack.*; 将Apack包中的所有类都导入进来;
import导入的是包中的类;
建议不要写通配符‘*’,需要包中的那个类就导入那个类;
当导入不同包中类出现重名时,必须加包名;
为什么写包名:
避免类重名
建议定义包名不要重复,可以使用URL来完成定义,URL是唯一的
package cn.itcast.demo
paceage cn.itcast.test
jar包:java的压缩包
jar包的使用。
rt.jar
jar -cf haha.jar pack1 pack2 将pack1和pack2中压缩成jia包haha.jar;
jar -tf haha.jar 查看jar包中的文件。其中MWTA——INF为配置文件;
jar包是一种存储方式;
把jar包看成一个存储方式之后,用环境变量指向jar包后,可以直接执行;
栈 堆 方法区 寄存器 本地方法区;
用ecplics打包成jar可执行文件