访问修饰符

修饰符本类同包子类其它
privatexxx
默认xx
protectedx
public

上面的意思是说,通过类的实例直接访问属性或方法(而不是使用 setget 等方法来访问)。

默认

  • A.java

    package com.dysy.entity;
    
    public class A {
        int abc;
    }
    
  • B.java

    package com.dysy.entity;
    
    public class B {
        
        public void print() {
            // 直接访问(没有通过 get 方法访问变量 abc)
            System.out.println(new A().abc); // 0
            // 以下就是错误的理解
            // System.out.println(abc);
        }
    }
    

protected

  • A.java

    // 注意包名
    package com.dysy.entity1;
    
    public class A {
        int number;
        protected int number2;
        public int number3;
    }
    
  • B.java

    // 注意包名
    package com.dysy.entity2;
    
    public class B extends A {
        private void test() {
            System.out.println(number);
            System.out.println(super.number);
            System.out.println(this.number);
            System.out.println(number2);
            System.out.println(super.number2);
            System.out.println(this.number2);
            System.out.println(number3);
            System.out.println(super.number3);
            System.out.println(this.number3);
        }
    }