Java中访问权限的控制常被称为具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,统称为封装。封装的结果是一个同时带有特征和行为的数据类型。 Java中,有public、protected、private 三个访问权限修饰词和不加修饰词的包访问权限。可以用来修饰类的成员。而类的访问权限只有public和包访问权限,即 private和protected不可以修饰类,但是可以修饰内部类。
访问权限修饰词对类的修饰决定了哪些类对该类能够进行访问。而对类成员的修饰,决定了其它类在能访问该类的前提下,能访问该类的哪些成员。
这就好比你去别人家 的一个四合院式的房子。类相当于这个四合院,里面的各个房子是它的成员。四合院大门的锁没锁,决定了你能不能进去这个院子,而你进去了后能进哪个房子,又取决于哪个房子没上锁。如果你连院子都没进去,那么房子上不上锁,对你而言已经没有意义了。因为你无论如何是进不去的。
代码示例 1.dinner.java
import dessert.*; public class Dinner{ public static void main(String args[]){ Bread b = new Bread(); b.eat(); Icecream i = new Icecream(4); i.eat(); Cola c = new Cola(); c.drink(); } }2.dessert/Bread.java
package dessert; public class Bread { public Bread(){} public void eat(){ System.out.println("Eat Bread!"); } }3.dessert/Icecream.java
package dessert; public class Icecream { private int n = 0 ; Icecream(){} public Icecream(int n){ this. n = n; } void eat(){ System.out.println("Eat " + this.n + " Icecream!"); } }4.dessert/Cola.java
package dessert; public class Cola{ private int n = 0; Cola(){} public void drink(){ System.out.println("drink " + this.n + " cola!"); } }运行结果
结果分析 对比代码和运行结果,可以看出访问权限修饰符的作用了。