如果可以直接将字段设为公开,为什么还需要getter和setter?
大家好!我刚开始学习Java和OOP,可能有个愚蠢的问题。在所有教科书和课程中都说:“始终将字段设为private,并通过getter和setter访问它们”。但我不明白为什么要这么复杂?
我有一个`Person`类:
```java
public class Person {
public String name;
public int age;
}
```
我可以直接写:
```java
Person person = new Person();
person.name = "Вася";
person.age = 25;
System.out.println(person.name);
```
一切正常!为什么我还要多写20行代码:
```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;
}
}
```
只是为了做同样的事情?`person.setName("Вася")`——这