2017-08-12 51 views
5
class Test{ 
    public Test(){ 
    System.out.println("I am here"); 
    return;// not getting error 
    } 

    public static void main(String[] args){ 
    Test test = new Test(); 
    } 
} 

मैं जावा शुरुआत कर रहा हूं। मेरे शिक्षक ने मुझे बताया कि निर्माता एक वस्तु देता है और मुझे उपर्युक्त उदाहरण दिखाता है। क्या यह वास्तव में हो रहा है क्योंकि विधि किसी भी मूल्य को वापस नहीं कर रही है लेकिन return; कोई त्रुटि नहीं मिल रही है।क्या यह सच है कि कन्स्ट्रक्टर ऑब्जेक्ट देता है?

+1

कोई कन्स्ट्रक्टर किसी ऑब्जेक्ट को वापस नहीं करता है। 'नया' कीवर्ड JVM को ऑब्जेक्ट बनाने, उसके कन्स्ट्रक्टर को कॉल करने और फिर ऑब्जेक्ट को "वापस" करने का कारण बनता है। – CollinD

+1

* [INFO] * 'वापसी' कीवर्ड बस विधि हस्ताक्षर पर प्रवाह लौटाता है (मूल रूप से वापसी विवरण के बाद कोड छोड़ना)। वापसी के बाद कुछ 'प्रिंट' कथन लिखने का प्रयास करें। और 'वापसी' के इस हस्ताक्षर का उपयोग 'void' विधि ** में किया गया है, जिसमें वापसी प्रकार **: पी – emotionlessbananas

+0

के साथ विधि में नहीं मिला है, लेकिन कन्स्ट्रक्टर के पास 'वापसी' प्रकार 'शून्य' नहीं है और संकलक यहां त्रुटि नहीं प्राप्त कर रहा है, तो मैं उलझन में था। –

उत्तर

7

नहीं, कोई कन्स्ट्रक्टर किसी ऑब्जेक्ट को प्रारंभ करता है जो पहले ही बनाया जा चुका है। यह एक वस्तु वापस नहीं करता है। आपका शिक्षक गलत है।

आपको कन्स्ट्रक्टर के अंदर return; लिखने की आवश्यकता नहीं है, जब तक कि आप कोड के अंत से पहले वापस नहीं आते।

2

नहीं। कन्स्ट्रक्टर की भूमिका वस्तु की स्थिति को आरंभ करना है।

new कीवर्ड ढेर में ऑब्जेक्ट बनाने के लिए ज़िम्मेदार है। उदाहरण के लिए, new कीवर्ड का उपयोग करके आप एक ऑब्जेक्ट बना रहे हैं और फिर आप उस ऑब्जेक्ट को Test वैरिएबल नाम test टाइप कर रहे हैं।

Test test = new Test(); 
3

नहीं है, है कि नहीं सभी

पर सच जावा में एक निर्माता के लिए एक विधि है कि जब एक वस्तु का एक उदाहरण बन जाता है कहा जाता है के समान कोड का एक खंड है। यहां एक निर्माता और विधि के बीच महत्वपूर्ण अंतर हैं:

  • एक निर्माता के पास रिटर्न प्रकार नहीं है।

  • कन्स्ट्रक्टर का नाम कक्षा के नाम के समान होना चाहिए।

  • विधियों के विपरीत, रचनाकारों को कक्षा के सदस्य नहीं माना जाता है।

  • ऑब्जेक्ट का एक नया उदाहरण बनाया गया है जब एक निर्माता को स्वचालित रूप से कॉल किया जाता है।

उदाहरण: जावा में

class Bike1{ 
    Bike1(){ 
     System.out.println("Bike is created"); 
    } 

    public static void main(String args[]){ 
     Bike1 b=new Bike1(); 
    } 
} 
1

निर्माता विधि एक विशेष प्रकार का है कि वस्तु प्रारंभ करने में किया जाता है।

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

लेकिन इसमें वापसी का प्रकार नहीं है, मुझे डर है कि आपका शिक्षक इस बारे में गलत है, कृपया उसे उसके साथ दोबारा डालें।

class Car{ 
Car() 
{ 
System.out.println("Car is created"); 
} 
    public static void main(String args[]) 
{ 
    Car c=new Car(); 
    } 
} 
+0

हैलो, मैं समझता हूं कि आप यहां नए हैं लेकिन कृपया अपना उत्तर पोस्ट करने से पहले प्रारूपण की जांच करें। –

2

कोड की इस पंक्ति

return; 

खुराक वापसी मान का मतलब यह नहीं है, लेकिन अभी यह जरूरी

स्थिति है जहाँ आप का उपयोग नहीं है यह सिर्फ ठेकेदार के निष्पादन के अंत और के बाद से यह अंतिम पंक्ति में है return निर्माता

class Test 
{ 

    private int a; 
    public Test(int a) 
    { 
    System.out.println("I am here"); 
    if(a>10) 
    { 
     System.out.println("I'm Executed but not the rest of code"); 
     return; 
    } 
    System.out.println("I'm the last line of constructor"); 
    } 

    ... 

} 

return में constructor में returnvoid विधि

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