廖雪峰Java2面向对象编程-5包和classpath-3作用域

访问权限
Java的类、接口、字段和方法都可以设置访问权限

  • 访问权限是指在一个类的内部,能否引用另一个类以及访问它的字段和方法
  • 访问权限有public、protected、private和package四种

public

定义为public 的class、interface、field、method可以被其他类访问

public interface Person{
    void run();
}
public class Student implements Person{
    public String name;
    public int age;
    public Student(String name){
        this.name = name;
    }
    public void run(){
        System.out.println(this.name+" 跑 啊 跑");
    }
}
public class Hello{
    public static void main(String[] args){
        Student s = new Student("张三");
        s.run();
        System.out.println(s.age);
    }
}

private

  • 定义为private的field、method无法被其他类访问
  • 但是在类的内部,其他方法是可以调用field和method的
  • private访问权限限定在类的内部,与方法声明顺序无关。
  • 推荐:把public放在前面,private放在后面。public对外提供了功能,阅读代码时,首要关心public代码
public class Student {
    private String name;
    private int age;
    public void info(){
        this.run();
        System.out.println(this.name);
    }
    private void run(){
        System.out.println("Student: " +name + " is running");
        System.out.println("name is "+age + " years old.");
    }
}
public class Hello{
    public static void main(String[] args){
        Student s = new Student();
        s.info();
    }
}


private class

  • 定义为private的class无法被其他类访问
  • 访问private class被限定在外层class的内部
  • 定义在一个class内部的class成为内部类inner class

protected
作用域

猜你喜欢

转载自www.cnblogs.com/csj2018/p/10281852.html