注意:java的访问控制是停留在编译层的,也就是它不会在.class文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。其实,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的。
区别:
public:可以被所有其他类所访问
private:只能被自己访问和修改
protected:自身、子类及同一个包中类可以访问
default:同一包中的类可以访问,声明时没有加修饰符,认为是friendly。
转自:https://www.cnblogs.com/jingmengxintang/p/5898900.html
在Android中
(1)app模块下面的类在Android测试类(androidtest,test)中除了private的成员不能访问,public,protected,default都可以访问
(2)app模块下面的类在app模块中,不同包中,只有public才可以访问,private,protected,defalut都不能访问
(3)在其他子模块中(module),子模块中类的default,protected成员在app模块中均不能访问,包括测试类