لماذا نحتاج إلى getters و setters إذا كان بإمكاننا جعل الحقول عامة؟
مرحبًا بالجميع! لقد بدأت للتو في تعلم Java و OOP، ولدي سؤال غبي على الأرجح. في جميع الكتب والدورات يقولون: "اجعل الحقول دائمًا private، والوصول إليها من خلال getters و setters". لكنني لا أفهم لماذا نعقد الأمور؟
لدي فئة `Person`:
```java
public class Person {
public String name;
public int age;
}
```
ويمكنني بسهولة كتابة:
```java
Person person = new Person();
person.name = "Vasya";
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("Vasya")` — هذا