Java学习13:package包

作用

对类文件进行分类管理;
给类提供多层命名空间;
写在程序文件的第一行;
类名全称为 包名.类名;
包也是一种封装形式。

总结

1.包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
即:有了包,范围变大,一个包中的类要被访问,必须有足够大的权限,所以被访问的类要被public修饰;类公有后,被访问的成员也要公有才可以被访问。见下例:

package packa;
public class DemoA//被访问的类要被public修饰
{
    public void show()//被访问的成员也要公有才可以被访问
    {
        System.out.println("DemoA show!");  
    }
}

2.不同包中的子类还可以直接访问父类中被protected权限修饰的成员。见下例:

//文件DemoA.java
package packa;
public class DemoA extends packb.DemoB
{
    public void show()
    {
        System.out.println("DemoA show!");  
        method();
    }
}

//文件DemoB.java
package packb;
public class DemoB
{
    protected void method()//此时PackageDemo.java中无法直接访问,必须是继承它的子类才可以访问
    {
        System.out.println("DemoB method!");    
    }
}

3.包与包之间可以使用的权限只有两种:public和protected;
4.不同权限的访问情况:
这里写图片描述

导入import

为了简化类名的书写,使用关键字import,导入的是包中的类。见下例:

/*
classpath=c:\myclass;

c:\myclass\packa\DemoA.class
c:\myclass\packa\packb\DemoZ.class

import packa.*;//只导入了DemoA.class
import packa.packb.*;//导入了DemoZ.class
*/

建议:
不要写通配符*,需要用到包中的哪个类,就导入哪个类;
定义包名不要重复,可以使用url来完成定义,url是唯一的。

package www.bupt.edu.cn.DemoA;
package www.bupt.edu.cn.DemoB;

jar包

建立两个文件DemoA.java和DemoB.java:

//文件DemoA.java
package packa;
public class DemoA 
{
    public void show()
    {
        System.out.println("DemoA show!");  
    }
}

//文件DemoB.java
package packb;
public class DemoB
{
    protected void method()
    {
        System.out.println("DemoB method!");    
    }
}

这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/gsh_hello_world/article/details/78824896