में संरक्षित डेटा में मेरे प्रश्न में विशेष रूप से जावा, सार कक्षाएं और संरक्षित डेटा का उपयोग शामिल है। मुझे बताया जा रहा है कि सभी डेटा निजी होना चाहिए, और संरक्षित गेटर्स/सेटर्स केवल इस्तेमाल किए जाने चाहिए।अमूर्त वर्ग
अब, मैं समझता हूं कि हम कक्षा के आकस्मिक उपयोगकर्ताओं द्वारा प्रत्यक्ष हेरफेर से डेटा को ढालना चाहते हैं, और आम तौर पर सार्वजनिक डेटा सदस्य एक संदिग्ध अभ्यास हैं। मैं "जावा संरक्षित क्षेत्रों बनाम सार्वजनिक टिककर खेल" (Java protected fields vs public getters) पर ध्यान दिया है, लेकिन मैं अभी भी संदिग्ध है कि हूँ:
protected int i;
से एक अमूर्त वर्ग में भी बदतर है:
private int i;
protected int geti();
protected void seti(int j);
मैं कर रहा हूँ बस नहीं देख नीचे की ओर जब अमूर्त वर्ग बच्चों के वर्गों के लिए माता-पिता/सामान्य सुविधा प्रदान करने के लिए ठीक है, और संरक्षित दायरा बच्चों के लिए पहुंच प्रदान करने के लिए है, जबकि आकस्मिक उपयोगकर्ताओं से डेटा की सुरक्षा करते हैं। मैं ऊपर उल्लिखित प्रश्न में नोट करता हूं कि अधिकांश उत्तर इस मुद्दे को संबोधित करते हैं कि आम तौर पर डेटा सार्वजनिक रूप से क्यों निजी होना चाहिए। मैं विशेष रूप से बच्चों द्वारा उपयोग के लिए एक अमूर्त माता-पिता में मौजूद डेटा पर अपने प्रश्न पर ध्यान केंद्रित करने की कोशिश कर रहा हूं। एकमात्र उचित टिप्पणी मैंने आज तक सुना है कि माता-पिता संरक्षित डेटा (उदाहरण के लिए, ऊपर मैं int) का उपयोग करके आपको बच्चे वर्ग में कोड के साथ छोड़ देता है जो बाल वर्ग में घोषित एक चर का संदर्भ देता है। कम आकर्षक तर्क है (Common protected data member in base class? देखें) कि आप कुछ दिन तक पहुंच बदलना चाहते हैं, और अब आपको अपने इंटरफेस का सम्मान करना होगा। यह एक अमूर्त वर्ग है, और इसका उद्देश्य 100% समय तक बढ़ाया जाना है।
धन्यवाद! पुस्तकों के लिए विशिष्ट शीर्षक/पेज # संदर्भ में कहीं अधिक सहायक होते हैं कि संदर्भ के लिए "..any बुनियादी जावा प्रोग्रामिंग पाठ ..."
=================== ======================= 10-13-2010
यह सार वर्गों के बारे में एक सवाल था क्योंकि यह संरक्षित डेटा के बारे में है। मुझे यह निराशाजनक लगता है कि ओओपी (डेटा: हाँ) में डेटा छिपाना एक अच्छी बात है या नहीं, इस पर प्रतिक्रिया में बदलाव आया है। अमूर्त वर्ग की प्रकृति को शामिल करने में बहुत गहराई है, और यह नियमित गैर-अंतिम वर्ग से अलग कैसे है, और उपयोग के लिए अमूर्त माता-पिता में डेटा-आइटमों के नामों और प्रकारों को ठीक करने के लिए क्या संभव फायदे हो सकते हैं बाल वर्ग मुझे लगता है कि यहां नवाचार के लिए संभावना है और अमूर्त माता-पिता से कार्यान्वित बाल वर्गों तक अधिक नियंत्रण बढ़ाया जा रहा है। मुझे चिंतित है कि सामान्य सिद्धांत, जैसे डेटा-छिपाने के फायदे, सिद्धांत बन सकते हैं, और नवाचार को रोक सकते हैं और नए पैटर्न और विचारों के विकास को रोक सकते हैं।
योगदान देने वाले सभी लोगों के लिए धन्यवाद।
[मैं सिर्फ कहीं और इस जवाब दे दिया।] (Http://stackoverflow.com/questions/3525405/sometimes-i-dont-get-why-we-go-so-far-as-to-make-every- सिंगल-फील्ड-ए-प्राइवेट-ए/3525629 # 3525629) – cHao
दरअसल, श्री हाओ, आपने एक अलग प्रश्न का उत्तर दिया। सार्वजनिक और निजी की सामान्य चर्चा यहां सवाल नहीं है, जब तक कि आप यह मानते हैं कि विरासत एक प्रकार का इंटरफ़ेस नहीं है? – cvsdave