📜  Java的受保护与私有访问修饰符(1)

📅  最后修改于: 2023-12-03 14:43:02.874000             🧑  作者: Mango

Java的受保护与私有访问修饰符

在Java中,有三种访问修饰符:public、protected和private。其中,public表示公共的,可以被任何类访问;protected表示受保护的,只可以被当前类及其子类访问;private表示私有的,只能被当前类访问。在本文中,我们主要介绍Java的受保护与私有访问修饰符。

受保护访问修饰符

受保护访问修饰符protected用来控制变量、方法、构造方法的访问权限。被protected修饰的变量、方法、构造方法,只能被本类及其子类访问。以下为一个示例:

public class Animal {
    protected String name;

    protected void eat() {
        System.out.println("Animal is eating.");
    }
}

public class Cat extends Animal {
    public void catEat() {
        System.out.println(name + " is eating fish.");
    }
}

public class Main {
    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.name = "Tom";
        cat.catEat();
    }
}

上面的代码中,Animal类中的name变量和eat方法都被protected修饰,只能被Animal类及其子类访问。Cat类是Animal类的子类,可以访问Animal类中受保护的属性和方法。

私有访问修饰符

私有访问修饰符private用来控制变量、方法、构造方法的访问权限。被private修饰的变量、方法、构造方法只能被本类访问。以下为一个示例:

public class Person {
    private String name;

    private void walk() {
        System.out.println("Person is walking.");
    }
}

public class Main {
    public static void main(String[] args) {
        Person person = new Person();
        person.name = "Tom";   // 编译错误,无法访问name属性
        person.walk();         // 编译错误,无法访问walk方法
    }
}

上面的代码中,Person类中的name变量和walk方法都被private修饰,只能被Person类访问。在Main类中无法访问Person类中的私有属性和方法,会造成编译错误。

总结

在Java中,使用访问修饰符可以控制变量、方法、构造方法的访问权限。受保护访问修饰符protected用来控制变量、方法、构造方法的访问权限,被protected修饰的属性和方法只能被当前类及其子类访问。私有访问修饰符private用来控制变量、方法、构造方法的访问权限,被private修饰的属性和方法只能被当前类访问。明确掌握访问修饰符的使用,能够更好地编写安全、可靠的Java程序。