public,private,protected,default的区别

3,395 阅读1分钟

public

public(公开)表示任何人都可以访问和使用该元素;

public class Test {
    public static void main(String[] args) {
        Person p=new Person();
        System.out.println(p.name);//输出小明
    }
}
class Person{
   public String name="小明";
}

这时候我们可以通过Person对象p直接访问name

private

private(私有)除了类本身和类内部的方法,外界无法直接访问该元素。

public class Test {
    public static void main(String[] args) {
        Person p=new Person();
        System.out.println(p.name);//这时候就无法直接访问name
    }
}
class Person{
   private String name="小明";
}

protected

protected(受保护)类似于 private,区别是子类可以访问 protected 的成员,但不能访问 private 成员。

public class Test {
    public static void main(String[] args) {
        Student student = new Student();
        System.out.println(student.name);//无法访问name
        System.out.println(student.age);//但可以访问age
    }
}
class Person{
   private String name="小明";
   protected String age="10";
}
class Student extends Person{
}

default

default(默认)如果你不使用前面的三者,默认就是 default 访问权限。default 被称为包访问,因为该权限下的资源可以被同一包(库组件)中其他类的成员访问。

小结