关于访问控制权限00

来源:互联网 发布:海贼王漫画885知乎 编辑:程序博客网 时间:2024/05/22 16:10

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是任何地方都可以访问
  //方法的访问权限同成员变量一致
  
 }
}