वर्ग बनाम संरचनाएं
ऑब्जेक्ट ओरिएंटेड (ओओ) प्रोग्रामिंग भाषाओं की कुछ मुख्य अवधारणाएं एनकैप्सुलेशन, इनहेरिटेंस और पॉलीमॉर्फिज्म हैं। क्लास और स्ट्रक्चर दो OO कंस्ट्रक्शंस/टूल्स हैं, जो प्रोग्रामर्स को इन कॉन्सेप्ट्स को बाहर निकलने वाली OO प्रोग्रामिंग लैंग्वेज (जावा स्ट्रक्चर्स प्रदान नहीं करता) के भीतर हासिल करने में मदद करते हैं। कक्षाएं वास्तविक दुनिया की वस्तुओं का एक सार प्रतिनिधित्व हैं। संरचनाएं समान उपयोग वाली कक्षाओं के समान हैं, लेकिन कक्षाओं की तुलना में कुछ सीमाएं हैं। समान प्रकार के डेटा को एक साथ समूहित करने के लिए वर्ग और संरचना दोनों का उपयोग किया जाता है।
कक्षाएं क्या हैं?
कक्षाएं वास्तविक दुनिया की वस्तुओं के अमूर्त प्रतिनिधित्व को दर्शाती हैं, जबकि संबंध दर्शाते हैं कि प्रत्येक वर्ग दूसरों से कैसे जुड़ा है। वर्गों और संबंधों दोनों में गुण होते हैं जिन्हें विशेषताएँ कहा जाता है। कक्षाओं में विधियाँ इन वर्गों के व्यवहार का प्रतिनिधित्व या परिभाषित करती हैं। वर्गों की विधियों और विशेषताओं को वर्ग के सदस्य कहा जाता है। आमतौर पर, इनकैप्सुलेशन को विशेषताओं को निजी बनाकर हासिल किया जाता है, जबकि सार्वजनिक तरीकों का निर्माण किया जाता है जिनका उपयोग उन विशेषताओं तक पहुंचने के लिए किया जा सकता है। एक वस्तु एक वर्ग का उदाहरण है। वंशानुक्रम उपयोगकर्ता को अन्य वर्गों (जिसे सुपर क्लास कहा जाता है) से कक्षाओं (उप वर्ग कहा जाता है) का विस्तार करने की अनुमति देता है। बहुरूपता प्रोग्रामर को अपने सुपर क्लास की वस्तु के स्थान पर किसी वर्ग की वस्तु को प्रतिस्थापित करने की अनुमति देता है। आमतौर पर, समस्या की परिभाषा में मिलने वाली संज्ञाएं सीधे कार्यक्रम में कक्षाएं बन जाती हैं। और इसी तरह, क्रियाएँ विधियाँ बन जाती हैं। सार्वजनिक, निजी और संरक्षित कक्षाओं के लिए उपयोग किए जाने वाले विशिष्ट एक्सेस संशोधक हैं। एक वर्ग आरेख सिस्टम के वर्गों, वर्गों के बीच संबंधों और उनकी विशेषताओं को दर्शाता है।
संरचनाएं क्या हैं?
जैसा कि ऊपर उल्लेख किया गया है, संरचनाएं समान उपयोग वाली कक्षाओं के समान हैं, लेकिन कक्षाओं की तुलना में थोड़ी सीमित क्षमताएं हैं। वास्तव में, वर्गों को संरचनाओं के विस्तार के रूप में माना जा सकता है। उदाहरण के लिए, संरचनाएं सी ++ में कक्षाओं के समान होती हैं, लेकिन उनके पास डिफ़ॉल्ट रूप से सार्वजनिक सदस्य होते हैं। एक संरचना को उपयोगकर्ता द्वारा एक प्रकार का प्रतिनिधित्व करने के लिए परिभाषित किया जा सकता है जो समग्र है। कक्षाओं के समान, संरचनाओं में ऐसे सदस्य होते हैं जो कई प्रकार के हो सकते हैं। कीवर्ड स्ट्रक्चर का उपयोग C और C++ में किसी स्ट्रक्चर को परिभाषित करने के लिए किया जाता है, जबकि कीवर्ड स्ट्रक्चर का उपयोग. NET प्रोग्रामिंग भाषाओं में उसी के लिए किया जाता है।
कक्षाओं और संरचनाओं में क्या अंतर है?
हालांकि, दोनों वर्ग और संरचनाएं प्रोग्रामिंग भाषाओं में समान संरचनाएं हैं, उनमें सूक्ष्म अंतर हैं। आमतौर पर, वर्ग संरचना का एक विस्तार है, और इसलिए संरचनाओं की कुछ सापेक्ष सीमाएँ होती हैं। उदाहरण के लिए, संरचनाओं को सी ++ में कक्षाओं के समान माना जा सकता है, लेकिन सदस्य डिफ़ॉल्ट रूप से कक्षाओं (संरचनाओं के विपरीत) में सार्वजनिक नहीं होते हैं।इसका वास्तव में मतलब है कि आप सी ++ में उपयुक्त एक्सेस संशोधक का उपयोग करके बिल्कुल समान विशेषताओं वाले वर्ग और संरचना को परिभाषित कर सकते हैं। हालाँकि C में, संरचनाओं में कोई फ़ंक्शन या अतिभारित संचालन नहीं हो सकता है। कीवर्ड क्लास और स्ट्रक्चर का इस्तेमाल क्रमशः C++ में क्लास और स्ट्रक्चर को परिभाषित करने के लिए किया जाता है। जब. NET भाषाओं (C, VB. NET, आदि) की बात आती है, तो वर्ग एक संदर्भ प्रकार है, जबकि संरचना एक मान प्रकार है। और आमतौर पर, संरचनाओं का उपयोग छोटी वस्तुओं के लिए किया जाता है, लेकिन कक्षाओं का उपयोग बड़ी वस्तुओं के लिए किया जाता है जो लंबे समय तक स्मृति में रखी जाती हैं।