上一章我们了解了控制访问权限的关键字,这里做一个总结:
访问权限 | 类 | 包 | 子类 | 其它包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
这里我们引入了一个包的概念,package修饰符即用来描述包,要想将一个类放入包中,就必须将包的名字放在源文件的开头。
public 标记的部分可以被任意的类使用:注意,这里有一个前提就是必须先导入要使用的类,或者在要使用的这个类中加上完整的包名。
示例1、
package pub;
public class Main {
public Human human1 = new Human();
}
package pub.test;
public class Human {
private String name;
public String getName(){
return name;
}
}
在示例1的Main类中使用它pub包的下级包 pub.test包中的public类Human发现编译报错,因为我们没有在Main类中import这一public的类。
正确示例如下 1.1
package pub;
//method 1
import pub.test.*;
public class Main {
public Human human1 = new Human();
//method 2
pub.test.Human hhHuman = new pub.test.Human();
}
在 三大特性之--封装(上) 中我们把所有的类都放在了同一个包下,所以我们在同一个包下使用的类可以不加public定义并正常的使用,如下:
class Human {
private String name = "LiLei";
int age = 3;
String getName(){
return name;
}
}
class Main {
Human human = new Human();
String name = human.getName();
public static void main(String[] args){
Main main = new Main();
Human human2 = new Human();
int age = human2.age;
}
}
当然,对于我们定义变量和方法来说,不加修饰标记,直接默认包可以使用,已经破环了我们这一个小节所要重点提示的内容:封装。
最后对于protected容待我们下节内容继承,来详细描述。