赞
踩
Java中提供了四种访问控制符,分别是private,default,protected和public,其访问控制级别从小到大如图所示:
(1)private:(当前类访问权限)
用private修饰的变量或方法只能被该类自身所访问和修改,而且不能被其他任何类(包括该类的子类)来获取和引用。很显然,private用来修饰成员变量最合适,使用它来修饰成员变量就可以把成员变量隐藏在该类的内部。
(2)default:(包访问权限)
用default修饰的成员变量或方法只能被同一个包中的类访问和引用,而不可以被其他包中的类使用。这种访问特性又称为包访问性。其中default关键字可以省略,即没有访问控制符就是使用了default默认修饰符。
(3)protected:(子类访问权限)
用protected修饰的成员变量或方法可以被三种类所引用:该类自身,与它在同一个包中的其他类,在其他包中该类的子类。使用portected修饰符的主要作用是允许其他包中该类的子类来访问父类的特定属性。通常情况下,如果使用protected来修饰一个方法,则是希望其子类重写这个方法。
(4)public:(公共访问权限)
用public修饰的成员变量或方法,可以被所有类访问,不管访问类和被访问类是否处于同一个包中,是否具有父子继承关系,是最宽松的访问控制级别。public修饰符会造成安全性的数据封装性下降,所以一般较少public访问控制符的使用。
遵循数据私有化,方法公开化的原则。即属性私有,并提供相应的set和get方法。
在原始类中定义了private私有变量,若要在其他类中访问这些private私有变量,则需要在原始类中定义公开的方法,以供其他类访问这些私有变量。例如:
- public class Student {
- private String name;
- private int age;
- private String stuID;
-
-
- public Student(String name,int age){
- this.name=name;
- this.age=age;
- }
-
- public Student(String name,int age,String stuID){
- this(name, age);
- this.stuID=stuID;
- }
-
- public String getName(){
- return this.name;
- }
-
- }
在原始类Student中定义了private私有成员变量name,age,stuID。若要在别的类中访问私有成员变量name,则需要在该类中定义公开的方法getName()来获取该私有成员变量。同理,若要在其他类中修改原始类中的私有成员变量,也可以在原始类中定义公开的方法进行修改。总之,将数据进行封装,并且定义了修改和访问的方法,可以大大提高数据的安全性。
修饰符 | 本类 | 同包类 | 非同包子类 | 所有类 |
private | ✔ | |||
default | ✔ | ✔ | ||
protected | ✔ | ✔ | ✔ | |
public | ✔ | ✔ | ✔ | ✔ |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。