Java 中私有修饰符和公共修饰符的区别

Java 中的私有修饰符和公共修饰符是面向对象编程中用于控制成员变量和成员方法可访问性的两个关键字。私有修饰符(private)用于限制成员的访问范围,而公共修饰符(public)则用于允许任何类访问成员。

私有修饰符(private)限制了成员的访问范围,只允许在其所属的类内部访问。这意味着私有成员在类的外部是不可见的,无法直接访问。例如,下面是一个示例类:

public class Person {
    private String name; // 私有成员变量

    private void displayInfo() { // 私有成员方法
        System.out.println("My name is " + name);
    }

    public void setName(String newName) {
        name = newName;
    }
}

在上面的示例代码中,name 是一个私有成员变量,只能在 Person 类的内部访问,外部无法直接访问。同样,displayInfo() 方法也是私有的,只能在 Person 类的内部调用。这样的设计有助于隐藏实现细节和确保封装性,提高代码的安全性。

公共修饰符(public)则允许任何类访问成员。公共成员在类的外部是可见的,可以通过对象访问。例如:

public class Main {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("John"); // 访问公共方法设置私有成员变量的值
        System.out.println(person.name); // 错误:私有成员变量不可见
        person.displayInfo(); // 错误:私有成员方法不可见
    }
}

在上面的示例代码中,通过使用公共方法 setName() 可以设置 name 的值。但是,直接访问私有成员变量 name 或调用私有方法 displayInfo() 都会导致编译错误,因为它们不可见。

需要注意的是,尽管公共修饰符允许访问成员,但并不意味着所有的成员都应该使用公共修饰符。过度使用公共修饰符可能会破坏封装性和安全性。在设计类时,应该根据需求合理地使用私有修饰符和公共修饰符,以确保代码的可维护性和安全性。

总结起来,私有修饰符和公共修饰符在 Java 中是控制成员可访问性的关键字。私有修饰符用于限制成员的访问范围,只允许在其所属的类内部访问。公共修饰符允许任何类访问成员。在设计类时,应该根据需求选择适当的修饰符,遵循良好的封装原则,提高代码的安全性。