Java中有4个访问级别(不同于C或者C++的3个)。但规则同样适用。如果能访问高级别,那么一定能够访问到较低级别的数据。如,如果能访问到package级别的数据,那么肯定能访问到protect级别的。在Java中,访问级别如下:
private > package > protect > public
更加具体的介绍,如下:
[table]
|访问控制符|同类|同包子类|同包其它类|不同包子类|不同包其它类|
|public|√|√|√|√|√|
|protect|√|√|√|√|X|
|package(默认)|√|√|√|X|X|
|private|√|X|X|X|X|
[/table]
private > package > protect > public
更加具体的介绍,如下:
[table]
|访问控制符|同类|同包子类|同包其它类|不同包子类|不同包其它类|
|public|√|√|√|√|√|
|protect|√|√|√|√|X|
|package(默认)|√|√|√|X|X|
|private|√|X|X|X|X|
[/table]
package com.java.access;
public class CLASSES {
private char a = 'a';
char b = 'b';
protected char c = 'c';
public char d = 'd';
public char getA() {
return a;
}
public void setA(char a) {
this.a = a;
}
}
package com.java.access;
public class CLASSES2 {
public static void main(String[] args) {
CLASSES classes = new CLASSES();
System.out.println(classes.b);// package
System.out.println(classes.c);// package privilege is higher than the protected privilege
System.out.println(classes.d);// public
}
}