为什么在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 = "Вася"`。这样更短更清晰!为什么要花时间写这些方法?我理解这与封装有关,但在实践中看不到区别。请解释一下它们实际需要的原因,而不仅仅是“习惯如此”。有什么实际意义?特别感兴趣的是,这在未来修改代码时如何帮助。