क्लासेस और संरचनाओं के बीच का अंतर

Anonim

क्लास बनाम संरचनाएं

ऑब्जेक्ट ओरिएंटेड (ओ ओ) प्रोग्रामिंग भाषाओं में से कुछ मुख्य अवधारणाएं इनकैप्सुलेशन, इनहेरिटन्स और पॉलिमॉर्फिज़्म हैं। कक्षा और संरचना दो ओओ निर्माण / उपकरण हैं, जो प्रोग्रामर को इन अवधारणाओं को अधिकांश ओ ओ प्रोग्रामिंग भाषाओं (जावा संरचना प्रदान नहीं करता है) के भीतर हासिल करने में मदद करती हैं। कक्षाएं वास्तविक दुनिया वस्तुओं का सार प्रतिनिधित्व हैं संरचनाएं समान उपयोग के साथ कक्षाओं के समान हैं, लेकिन कक्षाओं की तुलना में कुछ सीमाएं हैं। दोनों वर्गों और संरचना का उपयोग समान प्रकार के डेटा समूह के लिए किया जाता है, एक साथ।

कक्षाएं क्या हैं?

कक्षाएं वास्तविक दुनिया वस्तुओं के सार प्रतिनिधित्व को दर्शाती हैं, जबकि रिश्तों को दर्शाया गया है कि प्रत्येक वर्ग दूसरों से कैसे जुड़ा होता है दोनों वर्गों और रिश्तों के गुण गुण हैं वर्गों में विधियां इन वर्गों के व्यवहार को दर्शाती हैं या परिभाषित करती हैं। कक्षाओं के तरीकों और विशेषताओं को कक्षा के सदस्य कहा जाता है। आम तौर पर, सार्वजनिक विधियों का निर्माण करते हुए इन विशेषताओं को एक्सेस करने के लिए उपयोग किए जा सकते हैं। वस्तु एक वर्ग का उदाहरण है। वंशानुक्रम उपयोगकर्ता को अन्य कक्षाओं (जिसे सुपर वर्ग कहा जाता है) से वर्गों (उप वर्गों) को विस्तारित करने की अनुमति देता है पॉलीमॉर्फिज़्म प्रोग्रामर को अपने सुपर क्लास के एक ऑब्जेक्ट की जगह एक क्लास के ऑब्जेक्ट को स्थानांतरित करने की अनुमति देता है। आमतौर पर, समस्या परिभाषा में पाया जाने वाले नाम कार्यक्रम में कक्षाएं बन जाते हैं। और इसी प्रकार, क्रियाएँ तरीकों बन जाती हैं। सार्वजनिक, निजी और संरक्षित वर्गों के लिए उपयोग किए जाने वाले ठेठ पहुंच संशोधक हैं। एक क्लास आरेख तंत्र की कक्षाओं, वर्गों के बीच संबंध, और उनके गुणों को दर्शाता है।

स्ट्रक्चर क्या हैं?

जैसा कि ऊपर उल्लेख किया गया है, संरचनाएं समान उपयोग के साथ कक्षाओं के समान हैं, लेकिन कक्षाओं की तुलना में कुछ सीमित क्षमताएं हैं वास्तव में, कक्षाओं को संरचनाओं के विस्तार के रूप में माना जा सकता है। उदाहरण के लिए, संरचनाएं सी ++ में कक्षाओं के समान हैं, लेकिन उनके पास डिफ़ॉल्ट रूप से सार्वजनिक सदस्य हैं एक संरचना को उपयोगकर्ता द्वारा एक प्रकार का प्रतिनिधित्व करने के लिए परिभाषित किया जा सकता है जो समग्र है कक्षाओं के समान, संरचनाओं में ऐसे सदस्य होते हैं जो कई प्रकार के हो सकते हैं। कीवर्ड स्ट्रेट को सी और सी ++ में संरचना परिभाषित करने के लिए उपयोग किया जाता है, जबकि कीवर्ड संरचना उसी एनएटी प्रोग्रामिंग भाषाओं के लिए उपयोग की जाती है।

क्लासेस और स्ट्रक्चर के बीच अंतर क्या है?

हालांकि, दोनों वर्गों और संरचनाएं समान रूप से प्रोग्रामिंग भाषाओं में पाए गए हैं, उनके पास सूक्ष्म अंतर है। आमतौर पर, वर्ग संरचना का एक विस्तार होता है, और इसलिए संरचनाओं में कुछ सापेक्ष सीमाएं होती हैं उदाहरण के लिए, संरचनाओं को सी ++ में कक्षाओं के समान माना जा सकता है, लेकिन सदस्यों को कक्षाओं में डिफ़ॉल्ट रूप से सार्वजनिक नहीं हैं (संरचनाओं के विपरीत)।यह वास्तव में इसका मतलब है कि आप सी ++ में उपयुक्त एक्सेस मॉडिफ़र का उपयोग करके एक ही विशेषताओं के साथ एक कक्षा और एक संरचना को परिभाषित कर सकते हैं। हालांकि सी में, संरचनाओं में कोई कार्य या अतिभारित संचालन नहीं हो सकता है। कीवर्ड वर्ग और स्ट्रेट को क्रमशः सी ++ में एक वर्ग और एक संरचना को परिभाषित करने के लिए उपयोग किया जाता है। जब यह आता है। नेट भाषाओं (सी #, वीबी। नेट, आदि), वर्ग एक संदर्भ प्रकार है, जबकि संरचना एक मूल्य प्रकार है। और आम तौर पर, संरचनाओं का उपयोग छोटी वस्तुओं के लिए किया जाता है, लेकिन बड़ी वस्तुओं के लिए वर्गों का उपयोग किया जाता है जो लंबे समय तक स्मृति में रखे जाते हैं।