包的声明和导入
声明包:就是把该文件编译产生的所有.class文件放入包名指定的文件夹中。
一个Java源文件只能声明一个包,且声明语句必须是第一条语句。
// package 包名1.[包名2.[……]]
package QuanXian.X;
导入包:// import 包名.|接口名|*
1)一个.java文件可以包含多个import语句,但只能导入public权限的类或接口
2)导入时不会包含子包(即子文件夹)。
3)包名区分大小写。
import QuanXian.X.A;
从不同包中可导入相同的类,但此时必须使用全名 。
package X; public class A{public int x;} //文件1
package Y; public class B{public String s;} //文件2
package Z; //文件3
//import X.A; import Y.A; //这种导入方式报错
import X.*; import Y.*;
public class A{
int x;
public static void main(String[] args){
A.a=new A(); a.x=10;
Z.A a1=new Z.A(); a1.x=10;
X.A b=new X.A(); b.x=5;
Y.A c=new Y.A() c.s="xyz";
}
}
- JDK1.5新增静态导入,可导入类/接口中的所有或特定静态成员,格式如下:
//import static <包名>.类名.*; //import static <包名>.类名.<成员名>;
导入静态成员后,就可以不加类名,直接使用成员。
访问权限
修饰符 | 适用范围 | |||
同一类 | 同一包 | 不同包的子类(extends) | 所有类 | |
public | √ | √ | √ | √ |
protect | √ | √ | √ | |
缺省 | √ | √ | ||
private | √ |