java - How do I allow for infinite object instantiation? -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 2 जवाब
मैं वर्तमान में अटक गया हूं एक जावा प्रोग्राम मेरा कार्यक्रम, एक शहर-बिल्डर गेम, उपयोगकर्ता की तरफ के आधार पर किसी भी समय ऑब्जेक्ट्स को इन्स्टिट करने की क्षमता की आवश्यकता होती है, और ऑब्जेक्ट की संख्या को असीम होने की आवश्यकता होती है।
इस कार्यक्रम में एक बिल्डिंग टाइप वस्तु।
(मुझे पता है कि कैसे नई वस्तुओं को इन्स्तांत करना है, जैसे ...
भवन निर्माण 1 = नया भवन ();
...)
हालांकि, यह पद्धति मेरे कार्यक्रम के लिए स्वीकार्य नहीं है। मेरे कार्यक्रम को मक्खी पर नई बिल्डिंग ऑब्जेक्ट्स को इन्स्तांत करने में सक्षम होना चाहिए। कल्पना कीजिए कि उपयोगकर्ता को उस बटन पर क्लिक करने का विकल्प होता है जो दुनिया में एक नई इमारत रखता है। वे दुनिया में शून्य समय में एक नई इमारत बनाने के लिए क्लिक कर सकते हैं, या वे 5,000 बार क्लिक कर सकते हैं, परिणामस्वरूप 5,000 इमारतें दुनिया में डाल सकती हैं।
मैं जाहिर तौर पर 5,000 वस्तुओं को इन्स्तांत करना नहीं चाहता, जैसे इसलिए: <पूर्व>
भवन भवन 1 = नया भवन (); भवन निर्माण 2 = नया भवन (); ... बिल्डिंग बिल्डिंग 5000 = नया भवन ();
आप यह कोड कैसे लिख सकते हैं? अग्रिम धन्यवाद!
दो चीजें हैं जिनके बारे में आप जानना चाहते हैं कि आप क्या पूछ रहे हैं करने के लिए।
पहले का संग्रह है (इस मामले में) बिल्डिंग ऑब्जेक्ट्स आप जावा में एक पंक्ति के साथ एक बना सकते हैं जैसे
ArrayList & lt; बिल्डिंग & gt; इमारतों = नए अर्रेलिस्ट & lt; बिल्डिंग & gt; ();
अपने कोड में, यदि आप निम्नलिखित दो पंक्ति निष्पादित करते हैं, तो आप एक इमारत बना सकते हैं और इसे सूची में जोड़ सकते हैं:
भवन निर्माण = नया भवन (); buildings.add (निर्माण);
इसके बाद, यह बिल्ड आपकी सूची में रहेगा, यहां तक कि
build चर के दायरे से बाहर हो जाता है। आपको यह सुनिश्चित करना होगा कि
इमारतों ऑब्जेक्ट को ऐसे किसी ऑब्जेक्ट द्वारा निर्दिष्ट किया जाता है जो अवधि की अवधि के लिए नहीं जाती है, जिसे आप भवनों की सूची रखना चाहते हैं।
दूसरा महसूस करने की बात यह है कि आपको 500 भवन बनाने के लिए 500 अलग-अलग तत्काल वक्तव्य नहीं करना पड़ता है। यदि उपयोगकर्ता एक बटन पर क्लिक करता है, तो कोड है जो निष्पादित कर सकता है (आपके द्वारा कौन सा यूआई ढांचे पर निर्भर करता है, आदि); वह कोड एक इमारत बना सकता है और इसे सूची में डाल सकता है। वह एक ही कोड दूसरे बटन क्लिक के लिए निष्पादित कर सकता है; यह एक और इमारत बनायेगी और इसे सूची में डाल देगा। अगर भवनों की संख्या के लिए कोई विकल्प होता है, तो क्लिक कोड इस विकल्प को देख सकता है और फिर भी कई इमारतों को लूप में रखता है, और उन्हें सूची में डाल सकता है।
कृपया
बिल्डिंग भवन = buildings.get (वांछित इंडेक्स): अपने प्रश्न को स्पष्ट करें यदि यह आपकी जरूरत के अनुसार कवर नहीं करता है।
संपादित करें: सरणी में ऑब्जेक्ट पर एक मान सेट करना ; building.setDesiredValue ( "42");
आप वैकल्पिक रूप से उपयोग कर सकते हैं:
buildings.get (वांछित इंडैक्स) .setDesiredValue ("42");
लेकिन मुझे लगता है कि पढ़ने के लिए कठिन है।
बस FYI, "अनंत" वस्तुओं की संख्या केवल अनंत स्मृति के साथ एक मशीन पर समर्थित किया जा सकता है; मैंने इसे "रनटाइम पर निर्धारित" करने का अर्थ लिया।
Comments
Post a Comment