12.1 概述
包的作用:
- 对类文件进行分类管理
- 给类提供多层命名空间
- 写在程序文件的第一行
- 类名的全称是:包名.类名
- 包也是一种封装形式
12.2 包之间的访问
在类名前加,加public修饰,才能被包中其他文件访问。
12.3 包之间继承&protected
类中的函数全部都是public修饰,外界都能访问,这样子类显得没有特权。
package day12.packfu;
public class DemoFu {
public void method(){
System.out.println("DemoFu method run");
}
}
package day12.packzi;
public class DemoZi extends day12.packfu.DemoFu{
public void method(){
System.out.println("DemoZi method run");
}
}
package day12.mypack;
public class test {
public static void main(String[] arg){
day12.packzi.DemoZi demoZi = new day12.packzi.DemoZi();
demoZi.method();
day12.packfu.DemoFu demoFu = new day12.packfu.DemoFu();
demoFu.method();
}
}
输出:
DemoZi method run
DemoFu method run
所以现在使用protected修饰父类的函数,这样父类的函数只能被子类访问。
package day12.packfu;
public class DemoFu {
protected void method(){
System.out.println("DemoFu method run");
}
}
package day12.packzi;
public class DemoZi extends day12.packfu.DemoFu{
public void method(){
System.out.println("DemoZi method run");
}
}
package day12.mypack;
public class test {
public static void main(String[] arg){
day12.packzi.DemoZi demoZi = new day12.packzi.DemoZi();
demoZi.method();
day12.packfu.DemoFu demoFu = new day12.packfu.DemoFu();
demoFu.method();
}
}
运行结果:
Error:(9, 15) java: method() 在 day12.packfu.DemoFu 中是 protected 访问控制
public protected default private
同一类中 ok ok ok ok
同一包中 ok ok ok
子类 ok ok
不同包 ok
包与包之间只有两种权限可以用,public和projected(只有子类可以用)
12.4 import关键字
package day12.mypack;
import day12.packzi.DemoZi;
public class test {
public static void main(String[] arg){
DemoZi demoZi = new DemoZi();
//之前写的这个day12.packzi.DemoZi demoZi = new day12.packzi.DemoZi();
demoZi.method();
}
}