包概念的引入就是为了解决不同包之间有相同类名的类的共存问题,通过关键字import可以明确指定该类属于哪个包下,在引入一个类时也可直接写上类的全路径,如:
public class FullQualification {
public static void main(String[] args) {
// ArrayList在java.util包下,在new的时候直接使用全名明确
java.util.ArrayList list = new java.util.ArrayList();
}
}
以上做法能很好的解决问题,但这样显得程序很冗长,所以通常这样使用:
// 以下语句表示引入java.util包下的ArrayList
import java.util.ArrayList;
// 也可使用*来引入,表示引入java.util包下的所有类
import java.util.*;
public class SingleImport {
public static void main(String[] args) {
ArrayList list = new ArrayList();
}
}
Java提供了四种不同的访问权限修饰符:
public:接口访问权限
由public修饰的成员对每个人都是可以访问的,也就是说完全公开的;
protected:继承访问权限
在拥有默认包权限的基础上还能拥有父类的访问权限,不管有父子关系的两个成员是否在同一包中;
默认包:无关键词
表示同包下(即相同目录)可以访问;
private:私有访问权限
只有在当前作用域(通常就是当前类)中才能访问。
访问权限的控制常被称为具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,常被称作封装。