Java基础入门:面向对象-访问控制初探

127 阅读1分钟

用途:用于控制不同情况下不同代码的访问权限

属性/方法访问控制

四种访问权限

  • 【重要】private 私有访问权限
    • 使用关键字 private 进行权限控制
    • 使用 private 声明的属性和方法只能再本类中被访问
    private int id;
    private String name;
    
    private PrivateDemo(int id, String name) {
        this.id = id;
        this.name = name;
    }
    
  • 【重要】public 公共访问权限
    • 使用关键字 public 进行权限控制
    • public 权限可以被所有的类访问
  • default 包访问权限
    • 无关键字
    • 声明属性或方法时,如果没有使用任何的权限声明,则使用 default 权限
    • 默认权限可以本包中的其他类访问,但无法被其他包中的类访问
  • protected 继承访问权限
    • 使用关键字 protected 进行权限控制
    • protected 权限可以被本包中的其他类和其他包中的子类访问
public class AccessBestPracticeDemo {
    // 一般属性设为private
    private int id;
    private String name;

    // 用 getter and setter 来获取和修改属性
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    // 构造器public
    public AccessBestPracticeDemo(int id, String name) {
        this.id = id;
        this.name = name;
    }

    // 想给别人用就用 public
    public void doSomething() {
        doAnotherThing();
    }

    // 不想暴露给别人用的方法private
    private void doAnotherThing() {
        System.out.println("do another thing");
    }
}