Avatar ·

जावा में गेटर्स और सेटर्स (एक्सेसर्स) की आवश्यकता क्यों है, जबकि फ़ील्ड्स को सीधे public बनाया जा सकता है?

सभी को नमस्कार! मैंने Java और OOP सीखना शुरू किया है, और मेरे मन में एक सवाल है। मैं अक्सर देखता हूँ कि कोड में हर class फ़ील्ड के लिए गेटर्स और सेटर्स लिखे जाते हैं। उदाहरण: ```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 = "Вася"`। यह छोटा और स्पष्ट है! इन methods को लिखने में समय क्यों बर्बाद करें? मैं समझता हूँ कि यह एनकैप्सुलेशन से संबंधित है, लेकिन व्यवहार में कोई अंतर नहीं दिखता। कृपया समझाएँ कि वास्तव में इनकी आवश्यकता क्यों है, न कि केवल "ऐसा ही चलन है"। इसका व्यावहारिक अर्थ क्या है? विशेष रूप से, भविष्य में कोड बदलने पर यह कैसे मदद करता है?