Avatar ·

لماذا نحتاج إلى getters و setters (الموصلات) في Java إذا كان بإمكاننا جعل الحقول عامة؟

مرحباً بالجميع! بدأت تعلم Java و OOP، ولدي سؤال. كثيراً ما أرى أنه في الكود لكل حقل في الفصل يكتبون getters و setters. على سبيل المثال: ```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 = "Vasya"`. هذا أقصر وأوضح! لماذا نضيع الوقت في كتابة هذه الدوال؟ أفهم أن هذا مرتبط بالتغليف، لكن عملياً لا أرى فرقاً. اشرحوا لي، من فضلكم، لماذا هي ضرورية حقاً، وليس فقط "هكذا جرت العادة". ما الفائدة العملية من ذلك؟ خاصةً كيف يساعد ذلك عند تغيير الكود في المستقبل؟