एक उदाहरण और एक वस्तु के बीच अंतर क्या है? कोई फर्क है या नहीं?
एक उदाहरण और एक वस्तु के बीच अंतर क्या है? कोई फर्क है या नहीं?
जवाबों:
एक उदाहरण स्मृति में एक वस्तु है। मूल रूप से आप ऑब्जेक्ट बनाते हैं और जब आप उनका उपयोग कर रहे होते हैं तो उन्हें तुरंत भेज देते हैं।
यहाँ क्लासेस Vs ऑब्जेक्ट्स बनाम इंस्टेंस पर एक अच्छा राइटअप है, वह जावा की बात कर रहा है लेकिन यह सभी OO पर लागू होता है।
http://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/
इंस्टेंस और ऑब्जेक्ट ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग से हैं ।
जावा, सी ++ और स्मॉलटाक जैसी कुछ प्रोग्रामिंग भाषाओं के लिए, कोड का वर्णन करना और समझना महत्वपूर्ण है। अन्य भाषाओं में जो संरचित प्रोग्रामिंग में उपयोग किया जाता है यह अवधारणा मौजूद नहीं है।
यह स्ट्रक्चरल प्रोग्रामिंग से दृश्य है। कोई वास्तविक महत्वपूर्ण अंतर नहीं है जो आपके समय का बहुत अधिक उपभोग करना चाहिए। कुछ फैंसी भाषा हो सकती है, जिनके बारे में लिखने के लिए कुछ लोगों को बहुत सारे स्थान मिल सकते हैं, लेकिन दिन के अंत में, जहां तक एक कोडर, डेवलपर, प्रोग्रामर, वास्तुकार का संबंध है, एक वर्ग और एक की आवृत्ति ऑब्जेक्ट का मतलब एक ही चीज से है और अक्सर इंटरचेंज का उपयोग किया जा सकता है। मैं अपने करियर में कभी किसी से नहीं मिला हूं जो कि अंतर को इंगित करने की कोशिश कर रहा हो और वह आधा घंटा बिताएगा, क्योंकि वास्तव में कोई नहीं है। अन्य विकास प्रयासों पर समय बेहतर तरीके से व्यतीत किया जा सकता है।
UPDATE स्विफ्ट के संबंध में, यह वही है जो Apple ने स्विफ्ट पसंद का आविष्कार किया था:
एक वर्ग का एक उदाहरण परंपरागत रूप से एक वस्तु के रूप में जाना जाता है। हालांकि, स्विफ्ट कक्षाएं और संरचनाएं अन्य भाषाओं की तुलना में कार्यक्षमता में बहुत करीब हैं, और इस अध्याय में बहुत अधिक कार्यक्षमता का वर्णन है जो किसी वर्ग या संरचना प्रकार के उदाहरणों पर लागू हो सकता है। इस वजह से, अधिक सामान्य शब्द का उपयोग किया जाता है।
बहुत बढ़िया सवाल।
मैं इसे सरलतम तरीके से समझाऊंगा: मान लीजिए कि आपकी टोकरी में 5 सेब हैं। उन सेबों में से प्रत्येक सेब का एक प्रकार है, जिसमें कुछ विशेषताएं हैं (यानी बड़े, गोल, पेड़ों पर उगते हैं)।
प्रोग्रामिंग शब्दों में, आपके पास Apple नामक एक वर्ग हो सकता है, जिसमें चर आकार हैं: बड़ा, आकार: गोल, निवास स्थान: पेड़ों पर बढ़ता है। अपनी टोकरी में 5 सेब रखने के लिए, आपको 5 सेबों को पलटना होगा । Apple apple1, Apple apple2, Apple apple3 etc...
।
वैकल्पिक रूप से: वस्तुएं किसी चीज की परिभाषा हैं, उदाहरण भौतिक चीजें हैं।
इसका कोई मतलब भी है क्या?
उदाहरण: उदाहरण का अर्थ केवल संदर्भ (प्रति) बनाना है।
ऑब्जेक्ट: का अर्थ है जब मेमोरी ऑपरेटर नए ऑपरेटर का उपयोग करके ऑब्जेक्ट (क्लास की रन-टाइम इकाई) के साथ जुड़ा हुआ है।
सरल शब्दों में, इंस्टेंस किसी विशेष समय में ऑब्जेक्ट की कॉपी को संदर्भित करता है जबकि ऑब्जेक्ट क्लास के मेमोरी एड्रेस को संदर्भित करता है।
मान लीजिए कि आप कुछ कुर्सियाँ बना रहे हैं।
आरेख जो दिखाता है कि एक कुर्सी कैसे बनाई जाए और इसे एक साथ रखा जाए वह एक सॉफ्टवेयर क्लास से मेल खाती है।
मान लें कि आप उस आरेख में पैटर्न के अनुसार पांच कुर्सियां बनाते हैं। इसी तरह, आप एक वर्ग में पैटर्न के अनुसार पांच सॉफ्टवेयर ऑब्जेक्ट का निर्माण कर सकते हैं।
प्रत्येक कुर्सी में प्रत्येक विशिष्ट कुर्सी की पहचान करने के लिए सीट के नीचे एक अद्वितीय संख्या जलाई गई है। कुर्सी 3 एक कुर्सी पैटर्न का एक उदाहरण है। इसी तरह, मेमोरी लोकेशन 3 में एक सॉफ्टवेयर पैटर्न का एक उदाहरण हो सकता है।
तो, एक उदाहरण (कुर्सी 3) एक एकल, पैटर्न पैटर्न की एक विशिष्ट, विशिष्ट अभिव्यक्ति है।
वस्तु :
यह एक सामान्य शब्द है यह मूल रूप से एक सॉफ्टवेयर बंडल है जिसमें राज्य (चर) और व्यवहार (विधियाँ) हैं
कक्षा :
ऑब्जेक्ट उदाहरण के लिए ब्लू प्रिंट (टेम्प्लेट) -यह एक अनोखी वस्तु है उदाहरण के लिए आप दो बार ऑब्जेक्ट बनाते हैं इसका क्या मतलब है कि यो ने दो उदाहरण बनाए हैं
मुझे एक उदाहरण देने दें
Class student()
{
private string firstName;
public student(string fname)
{
firstName=fname;
}
Public string GetFirstName()
{
return firstName;
}
}
वस्तु उदाहरण :
छात्र s1 = नया छात्र ("मार्टिन"); छात्र s2 = नया छात्र ("कुमार");
S1, s2 में क्लास स्टूडेंट के ऑब्जेक्ट हैं
उदाहरण :
s1 और s2 वस्तु छात्र के उदाहरण हैं दो अद्वितीय हैं ।
इसे संदर्भ के रूप में भी कहा जा सकता है ।
मूल रूप से s1 और s2 ऐसे चर हैं जिन्हें एक वस्तु सौंपी जाती है
वस्तुएं और उदाहरण ज्यादातर एक जैसे होते हैं; लेकिन बहुत कम अंतर है। यदि Car
एक वर्ग है, तो 3 Car
एस 3 अलग-अलग ऑब्जेक्ट हैं। ये सभी वस्तुएं उदाहरण हैं। तो ये 3 कारें Car
वर्ग के उदाहरण से वस्तुएं हैं ।
लेकिन "उदाहरण" शब्द का अर्थ "संरचना उदाहरण" भी हो सकता है। लेकिन वस्तु केवल कक्षाओं के लिए है।
सभी वस्तुएं उदाहरण हैं। सभी उदाहरण वस्तुओं का नहीं होना चाहिए। उदाहरण "संरचना उदाहरण" या "ऑब्जेक्ट" हो सकते हैं। मुझे आशा है कि इससे आपको अंतर स्पष्ट हो जाएगा।
एक वस्तु एक निर्माण है, कुछ स्थिर है जिसमें कुछ विशेषताएं और लक्षण हैं, जैसे कि गुण और विधियाँ, यह कुछ भी हो सकता है (एक स्ट्रिंग, एक उपयोगकर्ता-नियंत्रण, आदि)
एक उदाहरण उस वस्तु की एक अनूठी प्रति है जिसे आप उपयोग कर सकते हैं और उसके साथ काम कर सकते हैं।
एक कंप्यूटर की तरह एक उत्पाद की कल्पना करो।
Xw6400 कार्य केंद्र एक ऑब्जेक्ट है
आपका xw6400 वर्कस्टेशन, या (आपका WIFE का xw6400 वर्कस्टेशन) xw6400 वर्कस्टेशन ऑब्जेक्ट का एक उदाहरण है
इस उत्तर को ट्राइट के रूप में देखा जा सकता है, लेकिन एक उदाहरण और वस्तु के बीच अंतर के बारे में चिंता करना पहले से ही ट्राइट सिटी है।
मुझे लगता है कि इसका सबसे अच्छा जावास्क्रिप्ट में दर्शाया गया है:
let obj= {"poo":1}
// "obj" is an object
छंद
Class Trash {
constructor(){this.poo = 1;}
}
let i = new Trash();
// "i" is an instance
यदि हम वस्तु और उदाहरण वस्तु की परिभाषा देखते हैं -
रन टाइम पर कक्षा के सदस्य के लिए आवंटित की गई मेमोरी को ऑब्जेक्ट या ऑब्जेक्ट को क्लास का उदाहरण कहा जाता है।
आइये देखते हैं उदाहरण की परिभाषा -
रन समय में किसी के लिए आवंटित की गई मेमोरी को उदाहरण चर कहा जाता है।
अब किसी भी रन टाइम मेमोरी आवंटन के अर्थ को समझें C में मल्लोक, कैलोक, रियललोक जैसे
struct p
{
}
p *t1
t1=(p) malloc(sizeof(p))
तो यहाँ भी हम रन टाइम मेमोरी आवंटित कर रहे हैं लेकिन यहाँ हम उदाहरण के तौर पर कॉल करते हैं इसलिए t1 उदाहरण है यहाँ हम t1 को ऑब्जेक्ट नहीं कह सकते हैं इसलिए हर ऑब्जेक्ट क्लास का उदाहरण है लेकिन हर इंस्टेंस ऑब्जेक्ट नहीं है।
ऑब्जेक्ट - एक वर्ग का एक उदाहरण जिसका अपना राज्य है और अपनी कक्षा द्वारा परिभाषित व्यवहार के सभी तक पहुंच है।
उदाहरण - उस विशेष वर्ग के लिए एक मेमोरी क्षेत्र का संदर्भ।
मैं विश्वास नहीं कर सकता, एक आदमी को छोड़कर किसी ने भी इसे समझाने के लिए कोड का उपयोग नहीं किया है, मुझे इसे भी शॉट दें!
// Design Class
class HumanClass {
var name:String
init(name:String) {
self.name = name
}
}
var humanClassObject1 = HumanClass(name: "Rehan")
अब बाईं ओर अर्थात: "humanClassObject1" ऑब्जेक्ट है और राइट साइड यानी: ह्यूमनक्लास (नाम: "रेहान") इस ऑब्जेक्ट का उदाहरण है।
var humanClassObject2 = HumanClass(name: "Ahmad") // again object on left and it's instance on the right.
इसलिए मूल रूप से, उदाहरण में उस ऑब्जेक्ट के लिए विशिष्ट मान होते हैं और ऑब्जेक्ट में मेमोरी लोकेशन (रन-टाइम पर) होती है।
याद रखें कि प्रसिद्ध कथन "ऑब्जेक्ट रेफरेंस ऑब्जेक्ट के इंस्टेंस पर सेट नहीं है", इसका मतलब है कि गैर-इनिशियलाइज्ड ऑब्जेक्ट का कोई उदाहरण नहीं है। कुछ प्रोग्रामिंग भाषाओं में स्विफ्ट जैसे कंपाइलर आपको एक ऐसा वर्ग भी डिज़ाइन करने की अनुमति नहीं देंगे जिसमें किसी भी तरह से इसे शुरू करने का कोई तरीका न हो (सदस्य जैसे: नाम, आयु आदि), लेकिन कुछ भाषा में आपको ऐसा करने की अनुमति है:
// Design Class
class HumanClass {
var name:String // See we don't have any way to initialise name property.
}
और त्रुटि केवल रन टाइम पर दिखाई जाएगी जब आप ऐसा कुछ करने की कोशिश करेंगे:
var myClass = HumanClass()
print(myClass.name) // will give, object reference not set to an instance of the object.
यह त्रुटि इंगित करती है कि, विशिष्ट मान (चर \ गुण के लिए) "INSTANCE" है जैसा कि मैंने ऊपर समझाने की कोशिश की! और ऑब्जेक्ट यानी: "myClass" में मेमोरी लोकेशन (रन-टाइम पर) होता है।
जब एक चर को कस्टम प्रकार (वर्ग) के रूप में घोषित किया जाता है, तो केवल एक संदर्भ बनाया जाता है, जिसे एक वस्तु कहा जाता है। इस स्तर पर, इस ऑब्जेक्ट को कोई मेमोरी आवंटित नहीं की जाती है । यह एक पॉइंटर के रूप में कार्य करता है (उस स्थान पर जहां ऑब्जेक्ट भविष्य में संग्रहीत किया जाएगा)। इस प्रक्रिया को 'घोषणा' कहा जाता है।
Employee e; // e is an object
दूसरी ओर, जब new
ऑपरेटर का उपयोग करके कस्टम प्रकार का एक चर घोषित किया जाता है , जो इस ऑब्जेक्ट में हीप में मेमोरी आवंटित करता है और आवंटित मेमोरी का संदर्भ देता है। यह वस्तु जिसे अब उदाहरण के रूप में कहा जाता है । इस प्रक्रिया को 'इंस्टेंटेशन' कहा जाता है।
Employee e = new Employee(); // e is an instance
दूसरी ओर, जावा जैसी कुछ भाषाओं में, एक ऑब्जेक्ट एक उदाहरण के बराबर है, जैसा कि जावा में ओरेकल के प्रलेखन में लिखी गई रेखा से स्पष्ट है :
नोट: वाक्यांश "एक क्लास को तत्काल करना" का अर्थ "ऑब्जेक्ट बनाने" के समान है। जब आप एक ऑब्जेक्ट बनाते हैं, तो आप एक वर्ग का "उदाहरण" बना रहे होते हैं, इसलिए एक क्लास को "इंस्टेंटिअटिंग" करते हैं।
प्रत्येक वस्तु को उसके वर्ग का एक उदाहरण कहा जाता है, लेकिन कक्षा के प्रत्येक उदाहरण का प्रत्येक गुण के लिए अपना मूल्य होता है, वर्ग के अपने इरादों के साथ विशेषता नाम और संचालन साझा करता है, लेकिन एक वस्तु में कक्षा पर उसका निहित संदर्भ होता है
क्लास: एक क्लास एक ब्लू प्रिंट है। ऑब्जेक्ट: यह क्लास की कॉपी है। उदाहरण: इसका एक चर जिसका उपयोग ऑब्जेक्ट के मेमोरी एड्रेस को रखने के लिए किया जाता है।
एक बहुत ही बुनियादी विश्लेषणात्मक उदाहरण
क्लास हाउस -> घर का खाका। लेकिन आप ब्लू प्रिंट में नहीं रह सकते। आपको एक भौतिक सदन की आवश्यकता है जो कि कक्षा में रहने का उदाहरण है। अर्थात, वस्तु का वास्तविक पता उदाहरण है। उदाहरण वस्तुओं का प्रतिनिधित्व करते हैं।
एक बार जब आप किसी वर्ग (नए का उपयोग करते हुए) को इंस्टेंट कर देते हैं, तो वह तात्कालिक चीज एक वस्तु बन जाती है। ऑब्जेक्ट एक ऐसी चीज़ है जो एनकैप्सुलेशन, पॉलीमॉर्फिज़्म, ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के अमूर्त सिद्धांतों का पालन कर सकता है और एक प्रोग्राम जो वास्तविक चीज़ क्लास में परिभाषित किए गए उदाहरण के सदस्यों का उपभोग करने के लिए इंटरैक्ट करता है। ऑब्जेक्ट में उदाहरण सदस्य (गैर-स्थैतिक सदस्य) होते हैं।
इस प्रकार एक वर्ग का उदाहरण एक वस्तु है। 'उदाहरण' शब्द का उपयोग तब किया जाता है जब आप उस उत्पत्ति का उल्लेख करते हैं जहां से यह पैदा हुआ है, यह अधिक स्पष्ट है यदि आप 'एक वर्ग की वस्तु' की तुलना में 'एक वर्ग का उदाहरण' कहते हैं (हालांकि बाद का उपयोग किया जा सकता है)।
नेस्टेड क्लासेस पर इस जावा डॉक्यूमेंट के 'इनर क्लासेस' सेक्शन को भी पढ़ सकते हैं - https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
जावा एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज (OOP) है। इसका मतलब है, कि आदिम प्रकारों को छोड़कर, जावा में सब कुछ एक वस्तु है।
अब, जावा ऑब्जेक्ट वास्तविक दुनिया की वस्तुओं के समान हैं। उदाहरण के लिए हम जावा में एक कार ऑब्जेक्ट बना सकते हैं, जिसमें वर्तमान गति और रंग जैसे गुण होंगे; और व्यवहार जैसे: गति और पार्क।
वह वस्तु है ।
दूसरी ओर, उदाहरण , उस वस्तु की विशिष्ट प्रारंभिक प्रतिलिपि है जो दिखता है Car car = new Car()
।
जावा कक्षाओं और ऑब्जेक्ट के बारे में अधिक जानने के लिए इसे देखें
त्वरित और सरल उत्तर
एक के बीच अंतर के बारे में object
और एक instance
, मुझे नहीं लगता कि किसी भी आम सहमति नहीं है है।
यह मुझे ऐसा लगता है जैसे लोग कागज, ब्लॉग पोस्ट, पुस्तकों या वार्तालापों में इसे बहुत अधिक बदल देते हैं।
मेरे लिए, जिस तरह से मैं इसे देखता हूं, एक ऑब्जेक्ट मेमोरी में एक सामान्य और जीवित इकाई है, भाषा द्वारा निर्दिष्ट में उपयोग किया जाता है। जैसे Object
कक्षा में Java
। हम इसके प्रकार, या इसके साथ जुड़े किसी भी चीज़ की अधिक परवाह नहीं करते हैं, चाहे यह एक कंटेनर द्वारा प्रबंधित किया जाता है या नहीं।
एक instance
, object
लेकिन एक प्रकार से जुड़ा हुआ है, जैसा कि this method accepts Foo instances
, या you can not put Animal instances in an instance of
a List of Vehicles
।
object
उदाहरण के लिए locks
उनके साथ जुड़े हैं, instance
एस नहीं , जबकि instance
एस के तरीके हैं। objects
कचरा एकत्र किया जाता है, instance
एस नहीं ।
लेकिन जैसा कि मैंने कहा, यह केवल यह है कि मैं इसे कैसे देखता हूं, और मुझे नहीं लगता कि कोई भी संगठन है जो हम उनके बीच एक मानक परिभाषा के लिए उल्लेख कर सकते हैं और सभी को उनकी थोड़ी अलग समझ होगी / परिभाषाएं (निश्चित रूप से सीमा के भीतर) ।
ऑब्जेक्ट क्लास हो सकता है, मान लें कि आपके पास बास्केटबॉल नामक एक क्लास है।
लेकिन आप चाहते हैं कि आपके टोकरी में कई बास्केटबाल हों जो आप 1 से अधिक बास्केटबॉल बनाते हैं
बास्केटबॉल 1 और बास्केटबॉल 2। फिर आप अपना एप्लिकेशन चलाएं। अब आपके पास ऑब्जेक्ट बास्केटबॉल के 2 उदाहरण हैं।
ऑब्जेक्ट क्लास को संदर्भित करता है और उदाहरण ऑब्जेक्ट को संदर्भित करता है। दूसरे शब्दों में इंस्टेंस किसी ऑब्जेक्ट की एक प्रति है जिसमें विशेष मान होता है।