Avatar ·

لماذا نحتاج إلى 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")` — هذا