2011-12-31 12 views
7

कोई नई ऑब्जेक्ट बनाते समय, मैं निम्न कोड का उपयोग करता हूं। इस कोड में, ऑब्जेक्ट संदर्भ चर 'ए' है?जावा - ऑब्जेक्ट घोषणा और प्रारंभिकरण

BankAcc a = new BankAcc(); 

इसके अलावा, ब्याज से बाहर, अगर ऊपर एक नई वस्तु चर एक, निम्नलिखित क्या करना है करने के लिए निर्माण करती है? क्या यह एक चर/ऑब्जेक्ट संदर्भ के बिना बस एक नई वस्तु बनाते हैं?

new BankAcc(); 

धन्यवाद!

उत्तर

7

हाँ और हाँ।

दूसरा एक उपयोगी हो सकता है जब आप संदर्भ के बारे में देखभाल किए बिना किसी अज्ञात ऑब्जेक्ट का उपयोग करना चाहते हैं। जैसा:

new Thread(new Runnable() { 
    public void run() { } 
}).start(); 
+0

+1 मैंने अभी तक धागे के साथ बहुत कुछ नहीं किया है, लेकिन मुझे यह उदाहरण मिलता है कि आपको किसी ऑब्जेक्ट के संदर्भ में क्यों रोचक नहीं होना चाहिए –

+1

यदि ऑब्जेक्ट स्वयं को जोड़ने के लिए आपको संदर्भ भी रखने की आवश्यकता नहीं है इसके आंतरिक निर्माण/प्रारंभिकरण के हिस्से के रूप में संग्रह। –

+0

@AaronJLang यह भी बहुत दिलचस्प है, यह सुनिश्चित नहीं है कि आप कहां/कब करेंगे लेकिन धन्यवाद, धन्यवाद। –

1

हाँ, यह सिर्फ वस्तु बनाता है, लेकिन यह किसी भी संदर्भ को निर्दिष्ट नहीं किया जाएगा, ताकि आप उस वस्तु पर उस वस्तु का उपयोग और नहीं कर सकते किसी भी आपरेशन। कचरा इकट्ठा होने तक यह स्मृति में बस रहेगा।

1

हाँ, और हाँ।

ध्यान दें कि इसके संदर्भ में बिना कक्षा के एक नए उदाहरण को बनाने के लिए यह अनदेखा नहीं है (हालांकि आवश्यक रूप से आदर्श नहीं है), क्योंकि वर्ग के निर्माता किसी दिए गए ऑपरेशन के लिए अपेक्षित सब कुछ कर सकते हैं।

1

कोड की दूसरी पंक्ति बैंकएसीसी कक्षा के अज्ञात उदाहरण को तुरंत चालू करती है।

यह एक त्वरित तरीका एक वर्ग का दृष्टांत के लिए, यह आमतौर पर एक विधि तर्क करने के लिए एक वर्ग उदाहरण पारित करने के लिए जब आप संदर्भ केवल एक बार की जरूरत है प्रयोग किया जाता है, उदाहरण के लिए है:

myFunc(new BankAcc()); 
0

हाँ चर संदर्भ "ए" है और हाँ new BankAcc(); कोई नया ऑब्जेक्ट बनाता है जिसमें कोई वैरिएबल नहीं है जिससे इसे अनाम बना दिया जाता है।

3

new BankAcc() ऑब्जेक्ट बनाता है और निर्माता को कॉल करता है। कभी-कभी आपको ऐसा करने की ज़रूरत होती है, उदाहरण के लिए:

Rectangle rect = new Rectangle(new Point(100, 200), new Dimension(100, 300)); 

यह केवल कोड का एक उदाहरण है ताकि आप देख सकें कि इसका उपयोग कैसे किया जा सकता है।

0

मैं सूर्य कुछ लगता है कि यह बहुत अच्छी तरह से,

"नए ऑपरेटर एक नई वस्तु के लिए स्मृति आवंटन और है कि स्मृति के लिए एक संदर्भ वापस लौट कर एक वर्ग को दर्शाता है। नए ऑपरेटर भी वस्तु निर्माता invokes।"

तो हाँ a वस्तु BankAcc आप new ऑपरेटर के साथ instantiated के लिए एक संदर्भ अर्थात, आप = चर a को new की वापसी जो अपने दूसरे के बारे में प्रकार BankAcc

का एक उदाहरण के लिए एक संदर्भ है बताए जाते हैं बिंदु, यह किया जा सकता है (संकलित और निष्पादित) लेकिन मुझे कई कारण नहीं दिख रहे हैं जब तक कि निर्माता ने कुछ 'महत्वपूर्ण' नहीं किया।

संपादित करें: जहां बिना किसी संदर्भ के instantiating उदाहरण के लिए ट्यूडर के जवाब का संदर्भ लें लागू है

6

रूप

BankAcc a = new BankAcc(); 

का उपयोग करके, this Java tutorial में विस्तार से बताया एक वस्तु के निर्माण के लिए एक बहु कदम है प्रक्रिया। आप घोषणा, इन्स्टेन्शियशन और प्रारंभ कदम

मैं केवल कि ट्यूटोरियल जो अपने प्रश्न के लिए प्रासंगिक हैं से सबसे दिलचस्प भागों पर प्रकाश डाला जाएगा:

  • करने की घोषणा एक परिवर्तनीय, आप type name; (इस मामले में BankAcc a;) का उपयोग करते हैं, जो a इंगित करता है BankAcc के डेटा के संदर्भ में उपयोग/उपयोग किया जा सकता है। इस समय, a किसी भी वस्तु

  • को संदर्भित नहीं करती इन्स्तांतa आप new कीवर्ड का उपयोग करें। यह एक नई वस्तु के लिए स्मृति आवंटित करेगा और उस स्मृति का संदर्भ लौटाएगा। new ऑपरेटर को एक एकल पोस्टफिक्स तर्क की आवश्यकता है: एक कन्स्ट्रक्टर को कॉल करें। new को एक चर में कॉल करके संदर्भित किया गया है या नहीं, आपकी पसंद है या नहीं। तुम भी एक अभिव्यक्ति में सीधे इस संदर्भ का उपयोग कर सकते हैं (उदा new Rectangle().height;)

  • प्रारंभ निर्माता है, जो नई वस्तु initializes करने के लिए वास्तविक कॉल है। कन्स्ट्रक्टर new ऑपरेटर

-5

ऑब्जेक्ट एक वास्तविक समय इकाई या असली दुनिया इकाई है। वस्तु के उदाहरण हैं, कलम, कार, बोर्ड, मेज, पेंसिल आदि है

मान लीजिए देखने के अपने वर्ग के नाम Book.here है कैसे करने के लिए हम वस्तु की घोषणा

बुक obj = नई पुस्तक();

संबंधित मुद्दे