刚在不同的package里对类成员进行访问时出现了访问权限的问题
package MainPackage;
/**
* Created by LiHui on 2015/4/25.
*/
import Package1.*;
public class Main {
public static void main(String[] args){
MyClass1 m1 = new MyClass1();
m1.money = 1;
MyClass2 m2 = new MyClass2();
m2.value = 2;
}
}
class MyClass2 {
int value;
}
package Package1;
/**
* Created by LiHui on 2015/4/25.
*/
public class MyClass1 {
int money;
public MyClass1(){
System.out.println("From MyClass1");
}
}
这里编译的时候,会提示money在Package1.MyClass1中不是公共的,无法从外部来进行访问;但是同样是成员变量的value却没这个问题,可见假如在定义的时候不指定任何权限,默认的状态下,在同一个package和不同的package下是导致访问权限的问题所在,在default状态下,最多只能访问本包
public:可以访问同一个类,同一个包,子类,以及其它的包,这里money改成public就可以访问
protected:可以访问同一个类,同一个包,子类,但是无法访问外部的包,比如这里money改成protected会和目前default一样的错误
default:可以访问同一个类以及同一个包,但是子类和外部的包无法访问,也就是不加任何修饰的这种情况
private:只能访问同一个类的情况
