2011-09-09 13 views
8

वापसी प्रकार-विधि द्वारा लौटाए गए मूल्य का डेटा प्रकार, या विधि यदि कोई मान वापस नहीं करता है तो शून्य।जावा में शून्य क्या करता है?

public class EnumTest { 
    Day day; 

    public EnumTest(Day day) { 
     this.day = day; 
    } 

    public void tellItLikeItIs() { 
     switch (day) { 
      case MONDAY: System.out.println("Mondays are bad."); 
         break; 

      case FRIDAY: System.out.println("Fridays are better."); 
         break; 

      case SATURDAY: 
      case SUNDAY: System.out.println("Weekends are best."); 
         break; 

      default:  System.out.println("Midweek days are so-so."); 
         break; 
     } 
    } 

    public static void main(String[] args) { 
     EnumTest firstDay = new EnumTest(Day.MONDAY); 
     firstDay.tellItLikeItIs(); 
     EnumTest thirdDay = new EnumTest(Day.WEDNESDAY); 
     thirdDay.tellItLikeItIs(); 
     EnumTest fifthDay = new EnumTest(Day.FRIDAY); 
     fifthDay.tellItLikeItIs(); 
     EnumTest sixthDay = new EnumTest(Day.SATURDAY); 
     sixthDay.tellItLikeItIs(); 
     EnumTest seventhDay = new EnumTest(Day.SUNDAY); 
     seventhDay.tellItLikeItIs(); 


    } 
} 

http://download.oracle.com/javase/tutorial/java/javaOO/enum.html

ऊपर कोड शून्य के बिना काम नहीं करता:

http://download.oracle.com/javase/tutorial/java/javaOO/methods.html

ठीक है, तो .. यहाँ मेरी सवाल है।

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The method tellItLikeItIs() is undefined for the type EnumTest 

मुझे क्या याद आया? वहां कोई शून्य क्यों है? और यह एक स्ट्रिंग वापस करता है?

+0

जावा में सभी विधियां एक रिटर्न प्रकार होनी चाहिए। शून्य बताएं कि यह विशिष्ट विधि कुछ भी वापस नहीं करेगी। –

+0

उन्होंने शून्य को चुना क्योंकि यह "शून्य" के साथ हाथ और हाथ चला गया। पसंद करेंगे कि उन्होंने "खाली" (जो अजीब लगता है, लेकिन अगर हम इसे 20 या 30 वर्षों तक इस्तेमाल नहीं कर रहे थे।) – corsiKa

+0

आप यहां 'शून्य' शब्द को नहीं हटा सकते हैं क्योंकि यही संरचना है भाषा की आवश्यकता है। तरीकों की परिभाषाएं आपको पुनः निर्दिष्ट करने की अपेक्षा करती हैं बारी बारी; आप * इसे कहीं नीचे लिखने के लिए है। और यह सिर्फ विधि के नाम के सामने है। –

उत्तर

9

कोड void के बिना काम नहीं करेगा क्योंकि System.out.println(String string) विधि कुछ भी नहीं लौटाता है और केवल मानक आउट टर्मिनल को आपूर्ति किए गए तर्कों को प्रिंट करता है, जो अधिकांश मामलों में कंप्यूटर मॉनिटर है। जब कोई विधि "कुछ नहीं" लौटाती है तो आपको यह निर्दिष्ट करना होगा कि void कीवर्ड को इसके हस्ताक्षर में डालकर।

आप System.out.println के प्रलेखन यहाँ देख सकते हैं:

http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html#println%28java.lang.String%29

मुद्दा आगे प्रेस करने के लिए, println एक तरीका है जिसके एक "पक्ष प्रभाव के रूप गणना प्रदर्शन कर रहा है का एक उत्कृष्ट उदाहरण है ।"

0

शून्य कुछ भी वापस नहीं करता है; यह संकलक को बताता है कि विधि में वापसी मूल्य नहीं है।

0

void का अर्थ है कि यह कुछ भी नहीं देता है। यह एक स्ट्रिंग नहीं लौटाता है, आप एक स्ट्रिंग को System.out पर लिखते हैं लेकिन आप एक को वापस नहीं कर रहे हैं।

आपको यह निर्दिष्ट करना होगा कि कोई विधि क्या लौटाती है, भले ही आप यह कह रहे हों कि यह कुछ भी नहीं लौटाता है।

तकनीकी रूप से बोलते हुए वे भाषा को डिजाइन कर सकते थे जैसे कि यदि आप रिटर्न टाइप नहीं लिखते हैं तो यह कुछ भी वापस नहीं माना जाता है, हालांकि आपको स्पष्ट रूप से void लिखने में मदद मिलती है ताकि यह सुनिश्चित किया जा सके कि लौटाए गए मूल्य की कमी जानबूझकर है और आकस्मिक नहीं

+0

जब आप कहते हैं कि यह अलग कैसे होता है, तो कोई विधि कुछ भी नहीं लौटाती है लेकिन यह कंसोल पर कुछ प्रिंट करती है – Rudra

13

आपका मतलब tellItLikeItIs विधि है? हां, आपको यह निर्दिष्ट करने के लिए void निर्दिष्ट करना होगा कि विधि कुछ भी वापस नहीं करता है। सभी विधियों में है जो एक रिटर्न प्रकार निर्दिष्ट है, भले ही यह void है।

यह निश्चित रूप से एक स्ट्रिंग-वापसी नहीं देता है, कहीं भी कोई रिटर्न स्टेटमेंट नहीं है। यह वास्तव में स्पष्ट नहीं है कि आपको लगता है कि एक स्ट्रिंग लौट रहा है। यह प्रिंटिंग कंसोल पर स्ट्रिंग्स है, लेकिन यह विधि से एक को वापस करने जैसा ही नहीं है।

0

जब वापसी का प्रकार शून्य है, तो आपकी विधि कुछ भी वापस नहीं करती है।

फिर से अपने कोड पर देखें: उस विधि में कोई वापसी नहीं है। आप कंसोल पर प्रिंट करते हैं और बाहर निकलें।

0

शून्य: प्रकार संशोधक शून्य बताता है कि मुख्य विधि किसी भी मूल्य को वापस नहीं करती है। किसी विधि के सभी पैरामीटर कोष्ठक से पहले घोषित किया जाता है। यहां स्ट्रिंग का तर्क है [] एक पैरामीटर नामक पैरामीटर घोषित करता है जिसमें एक सरणी होती है कक्षा प्रकार स्ट्रिंग की ऑब्जेक्ट्स

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