कक्षाओं में, चर को अक्सर encapsulation के लिए निजी बनाया जाता है, और एक निश्चित दायरे में चर को सीमित करने के लिए बेहतर त्रुटि नियंत्रण और कम कीड़े की अनुमति देता है। यह समझ में आता है, क्योंकि कम जगहों पर एक चर को कम जगहों तक पहुंचा जा सकता है, उस चर के साथ एक बग हो सकता है।गेटर और सेटर (एक्सेसर) फ़ंक्शंस के माध्यम से निजी चरों तक पहुंचने का क्या मतलब है?
हालांकि, मैं हमेशा निजी बनाये गये चर देखता हूं, और उसके बाद उस मूल्य को पुनर्प्राप्त करने के लिए उपयोग किए जाने वाले गेटर और सेटर फ़ंक्शन (कभी-कभी उस चर के लिए पॉइंटर भी!)। उदाहरण के लिए int a
सार्वजनिक पहुंच को रोकने के लिए निजी है, लेकिन फिर getA()
और setA()
उन्हें सीधे पहुंच की अनुमति देता है।
तो गेट फ़ंक्शन और सेटर फ़ंक्शन निजी होने के बिंदु को नकारें? मेरा मतलब है कि एक्सेसर फ़ंक्शन के साथ निजी चर सार्वजनिक चर के समान हैं, केवल उन्हें बदलने के लिए कोड। (object.variable vs object.getVariable())
क्या कोई कारण है कि लोग एक्सेसर फ़ंक्शंस के साथ चर बनाते हैं? क्या इसे सार्वजनिक बनाने की तुलना में कोई फायदे हैं?
मैं सामान्य रूप से प्रोग्रामिंग के बारे में बात कर रहा हूं, लेकिन ज्यादातर सी भाषाओं में (यानी सी, सी ++, सी #, ओबीजे-सी)।
यह वास्तव में भाषा पर निर्भर करता है। प्रतिबंधित ओओ भाषाओं (सी #, जावा) में, गेटर्स/सेटर्स एक आम मुहावरे हैं, जबकि सी ++ जैसी एक फ्री भाषा में वे आमतौर पर खराब शैली होती हैं। –