2010-07-04 17 views
8

मैं कक्षा के लिए एक काफी सरल परियोजना पर काम कर रहा हूं। मुझे पता था कि यह जावा में लिखा जाना था, और मैंने असाइनमेंट विवरण को पर्याप्त रूप से पढ़ा ताकि मुझे यह पता चल सके कि मुझे क्या करना है, इसलिए मैंने एक अच्छा, ऑब्जेक्ट उन्मुख समाधान बनाने के बारे में सेट किया ('इसका कारण जावा है, दाएं ?)। जब मैं अंततः असाइनमेंट के नट-किरकिरा विवरण पढ़ने के लिए मिलता हूं, तो मैं इस छोटे मणि पर आ जाता हूं: पूरी बात एक वर्ग फ़ाइल के रूप में जमा की जानी चाहिए। अब पूरी चीज को फिर से लिखना बहुत देर हो गया है, इसलिए मैंने अपने सभी कक्षाओं को प्राथमिक वर्ग के स्थैतिक आंतरिक वर्ग बनाकर इसके आसपास काम करने की कोशिश की। मेरी चपेट में, मैंने पाया कि ग्रहण, कम से कम डिफ़ॉल्ट रूप से, कक्षाओं को अलग करने के लिए आंतरिक कक्षाओं को संकलित करता है। दुर्भाग्य से मैं जावा कंपाइलर सेटिंग्स के बारे में बहुत कुछ नहीं जानता, लेकिन मुझे आशा है कि वे सभी को एक .class फ़ाइल में संकलित करने का एक तरीका है। क्या यह संभव है, या मुझे बस एक नोट के साथ जो मिला है उसे बदलना चाहिए और जो कुछ भी मेरे टीए ने मुझे इसके लिए डॉक करने का फैसला किया है?क्या मैं अपनी सभी आंतरिक कक्षाओं के साथ एक वर्ग को एक वर्ग फ़ाइल में संकलित कर सकता हूं?

+0

मैंने कुछ असाइनमेंट सबमिशन सिस्टम देखे हैं जो केवल एक फ़ाइल को अपलोड करने की अनुमति देते हैं (टेक्स्ट विवरण के साथ) - यह एक .class-file सीमा के कारण हो सकता है। यदि यह वास्तव में मामला है, तो आप शायद एक साथ एक .jar फ़ाइल अपलोड कर सकते हैं। –

+0

बोझो की तरह कहा, आप कई वर्गों को एक वर्ग फ़ाइल में संकलित नहीं कर सकते हैं। मैं टीए से कुछ उदारता के लिए पूछूंगा जैसा कि पहले से ही सुझाया गया था, लेकिन साथ ही इसे पुन: सक्रिय करने का प्रयास करें ताकि यह बैकअप के रूप में एक एकल वर्ग फ़ाइल में संकलित हो। समय में ऐसा करने में सक्षम हो सकता है, जो जानता है। – Jeff

+2

असाइनमेंट के लिए मुझे करना था, मुझे हमेशा सोर्स कोड जमा करना पड़ा। –

उत्तर

6

मुझे डर है कि ऐसा कोई विकल्प नहीं है। प्रत्येक वर्ग को अपनी कक्षा फ़ाइल में परिभाषित किया जाता है। यहां तक ​​कि गुमनाम वर्गों ParentClass$1.class

में परिभाषित कर रहे हैं क्या मेरा सुझाव है पर भारी टिप्पणी/प्रलेखन डाल करने के लिए क्यों आपको लगता है यह एक वर्ग में सब कुछ डाल करने के लिए अच्छा नहीं है। बेशक यह "दूसरे छोर पर" व्यक्ति पर निर्भर करता है।

एक फ़ाइल, बजाय एक वर्ग की आवश्यकता है, बस एक जार फ़ाइल बनाते हैं।

+0

अच्छी तरह से मुझे लगता है कि वह किसी कारण से सोचा होगा कि प्रक्रिया को हल करने की कोशिश करने के लिए निर्देशक होगा, लेकिन फिर जावा में ऐसा क्यों करें? वैसे भी, त्वरित उत्तर के लिए धन्यवाद। –

+0

अच्छी तरह से, जावा को भी प्रक्रियात्मक तरीके से उपयोग किया जा सकता है। विशेष रूप से अगर यह पूरी तरह से एक एल्गोरिदम है। – Bozho

0

यह कहा गया है, यह एकल फ़ाइल, या एकल कक्षा फ़ाइल होना चाहिए। यदि पूर्व में आप निश्चित रूप से ज़िप/जार कर सकते हैं, यदि बाद में टीए के साथ थोड़ी सी बातचीत करने का तरीका होगा।

3

यदि आप बहादुर महसूस कर रहे हैं तो आप अपने आवेदन के लिए एक जार बना सकते हैं, इसे अपने टॉप्लेवलक्लास में एक स्ट्रिंग के रूप में एन्कोड करें जो क्लासलोडर को बढ़ाता है और डीकोडेड जार फ़ाइल से कक्षाओं को लोड करने के लिए इस क्लासलोडर का उपयोग करता है।

यह इतना पागल है और जावा प्लेटफॉर्म के इतने सारे ज्ञान को दिखाता है कि इसे अतिरिक्त क्रेडिट के लायक होना चाहिए।

+0

हाँ, वह पागल है! :) – Jeff

+0

वास्तव में क्लास फ़ाइल में अपनी जार फ़ाइल को जोड़ने का आसान तरीका है। इसके बाद मुख्य वर्ग को अपनी फ़ाइल से जार डेटा पढ़ने के लिए क्लासलोडर का विस्तार करना चाहिए। इस तरह आप जार से पहले एकल फ़ाइल स्थापना (या केवल रननेबल) प्रोग्राम लिख सकते हैं। – relet

1

एक टीए के रूप में, यदि कोई छात्र मुझे एक जावा फ़ाइल भेजता है, ऑब्जेक्ट उन्मुख डिजाइन और नेस्टेड कक्षाओं के साथ, मुझे यह पसंद आएगा!

यदि टीए समस्या का सबसे आसान समाधान चाहता था और आप इसे एक और कहानी की तुलना में अधिक इंजीनियर बनाते हैं।

ध्यान दें कि अगर टीए ने नेस्टेड कक्षाओं को पसंद नहीं किया है और लगता है कि वे बुरे हैं, तो उन्हें न्यूस्पीक और गिलद ब्राचा की पोस्ट पर इंगित करें। वह जावा भाषा विशिष्टता में शामिल है, वह इस क्षेत्र में एक अधिकार है और पूरी तरह से कक्षा घोंसले के आधार पर एक भाषा के साथ आया!

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

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