刚在不同的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:只能访问同一个类的情况