package bisic;
/*
* 权限修饰符用来干嘛的--什么样的类能够访问我的属性和方法
* 作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly或称为default
class的权限修饰只能用public在任何地方都可以访问或者default同一个包内可以访问
*/
public class PublicPrivate {
}
class T {
private int i = 0;
int j = 0;
protected int k = 0;
public int m = 0;
private void m() {
i = 2;
System.out.println(i);
}
void m1(){
i=3;
System.out.println(i);
}
protected void m2(){
i=4;
System.out.println(i);
}
public void m3() {
i=5;
System.out.println(i);
}
}
class TT {
public void m2() {
T t = new T();
//System.out.println(t.i);//这句访问不到i,i是类权限,只有在在T类内部可以访问
System.out.println(t.j);//j是包权限,TT和T位于同一个包内,所以可以在TT内访问T的default成员变量
System.out.println(t.k);//k是子类权限,包权限+子类都可以访问
System.out.println(t.m);//m是任何地方都可以访问
//方法的访问权限同成员变量一致
}
}