Avatar ·

为什么在Java中需要getter和setter(访问器),如果可以直接将字段设为public?

大家好!我开始学习Java和OOP,有一个问题。我经常看到代码中为每个类字段编写getter和setter。例如: ```java public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } ``` 但可以更简单: ```java public class Person { public String name; public int age; } ``` 然后直接访问:`person.name = "Вася"`。这样更短更清晰!为什么要花时间写这些方法?我理解这与封装有关,但在实践中看不到区别。请解释一下它们实际需要的原因,而不仅仅是“习惯如此”。有什么实际意义?特别感兴趣的是,这在未来修改代码时如何帮助。