Java权限修饰词:
在一个类的内部,其成员(包括成员变量和成员函数)能否被其他类所访问,取决于该成员的修饰词。Java的类成员访问权限修饰词有四类:private,无(默认情况下),protected和public。其权限控制如下表所示:
修饰词 | 本类中 | 同包下 | 不同包子类中 | 其他 |
---|---|---|---|---|
public | true | true | true | true |
protected | true | true | true | |
default | true | true | ||
private | true |
公共类型 public ;
public可以修饰类,成员变量,构造方法,方法成员。
被public修饰的成员,可以在任何一个类中被调用,不管同包或不同包,
是权限最大的一个修饰符
私有类型 private;
可以修饰成员变量,构造方法,成员方法,不能修饰类(此处指外部类,不考虑内部类)。
被private修饰的成员,只能在定义它们的类中使用,在其他类中不能调用。
默认类型 default;
可用于修饰类,成员变量,构造方法,方法,都能够使用默认权限,即不写任何关键字。
默认权限即同包权限,同包权限的元素只能在定义它们的类中,以及同包的类中被调用。
保护类型 protect;
可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内部类)。
被protected修饰的成员,能在定义它们的类中,同包的类中被调用。
如果有不同包的类想调用它们,那么这个类必须是定义它们的类的子类。
权限修饰符的一点注意:
在实际开发中,成员变量要尽可能的设置成不可见,好处是,提高代码的安全性。即用private修饰,为了在其他类中可以对成员变量进行重新设置值或者获取值我们可以定义相应成员变量的共有方法来进行操作。
public void setName(String name){
this.name = name;//修饰成员变量的值
}
public String getName(){
return name;
}