包(package)
1,对类文件进行分类管理
2,给类提供多层命名空间
3,写在程序文件的第一行
4,类名的全称是 包名.类名
5,包也是一种封装形式
带包的java文件编译命令
编译:javac -d . PackageDemo.java
运行:java pack.PackageDemo
编译:javac -d d:\a\day0814 PackageDemo.java
运行:set classpath=d:\a\day0814
java pack.PackageDemo
package pack;
class PackageDemo
{
public static void main(String[] args)
{
packa.DemoA d = new packa.DemoA();
d.show();
//System.out.println("Holle World!");
}
}
package packa;
public class DemoA extends packb.DemoB
{
public void show()
{
System.out.println("A:Holle World!");
method();
}
}
package packb;
public class DemoB
{
public void method()
{
System.out.println("B Holle World!");
}
}
错误原因:packa包不在当前目录下
需要设置classpath,告诉jvm去哪里找指定的packa包
错误原因:有了包,范围变大,一个包中的类要被访问,必须要有足够大的权限。所以被访问的类要被public修饰
错误原因:类公有后,被访问的成员也要公有才可以被访问
总结:包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
不同包中的子类还可以直接访问父类中被protected权限修饰的成员。
包与包之间可以使用的权限只有两种, public protected
public protected default private
同一个类中 ok ok ok ok
同一个包中 ok ok ok
子类 ok ok
不同包中 ok
为了简化类名的书写,使用一个关键字,import
import 导入的是包中的类
d:\a\day0814
d:\a\day0814\packb\DemoA.class
d:\a\day0814\packa\DemoB.class
import packa.*;
import packb.*;