2010-05-23 13 views
5

मैं निम्नलिखित एक OU TMA दस्तावेज है जो पढ़ में निहित निर्देशों एक खेल कोड करने के लिए कोशिश कर रहा हूँ:,java.util.Random शून्य तर्क जांच

निर्माता में दौड़ के लिए रैंडम का एक नया उदाहरण आवंटित करने के लिए कोड लिखने आप जो रैंडम क्लास के शून्य तर्क कन्स्ट्रक्टर का उपयोग करना चाहिए

क्या यह कोड काम करेगा?

Random ran = new Random(0) ; 

मैं जावा के लिए एक रिश्तेदार नौसिखिया हूँ, और मुझे समझ नहीं आता कि वास्तव में क्या निर्देश

+2

एफडब्ल्यूआईडब्ल्यू, क्या * आपका * कोड 0 * के * बीज * के साथ एक नया 'यादृच्छिक' ऑब्जेक्ट बनाता है। सीडिंग एक यादृच्छिक संख्या जेनरेटर की एक महत्वपूर्ण संपत्ति है; इसका मतलब है कि आप हर बार एक ही यादृच्छिक संख्या प्राप्त कर सकते हैं (जब आप एक ही बीज से शुरू होते हैं)। –

+2

मुझे लगता है कि यह हमारे लिए एक अनुस्मारक है कि "शून्य तर्क" की तुलना में "कोई तर्क नहीं" या "नो-Args" बेहतर है (यानी कम संदिग्ध) शब्दावली। –

उत्तर

6

नहीं, यह अभ्यस्त काम मतलब है।

Random ran = new Random(); 

जाने का रास्ता है: एक शून्य तर्क निर्माता एक निर्माता कि कोई तर्क लेता है।

दो निर्माताओं की अंतर अच्छी तरह एपीआई डॉक्स में वर्णित है:

Random()
एक नई यादृच्छिक संख्या जनरेटर बनाता है। यह कन्स्ट्रक्टर यादृच्छिक संख्या जेनरेटर के बीज को इस कन्स्ट्रक्टर के किसी भी अन्य आमंत्रण से अलग होने की संभावना के आधार पर सेट करता है।

Random(long seed)
एक नई यादृच्छिक संख्या एक भी लंबे समय से बीज का उपयोग जनरेटर बनाता है: public Random(long seed) { setSeed(seed); }

यही है, एक तर्क के साथ बनाया एक यादृच्छिक वस्तु, यादृच्छिक संख्या का उसी क्रम कार्यक्रम के प्रत्येक रन वापस आ जाएगी , जबकि शून्य-तर्क कन्स्ट्रक्टर (या, "कोई तर्क कन्स्ट्रक्टर") के माध्यम से बनाई गई ऑब्जेक्ट अलग-अलग अनुक्रमों को वापस करने के लिए अपनी पूरी कोशिश नहीं करेगी।

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