Number n = new Number(5)
अवैध है, लेकिन Number n = 5
नहीं है। क्यूं कर?यदि कक्षा संख्या सार है तो मुझे नंबर एन = 5 लिखने की अनुमति क्यों है?
उत्तर
ऑटोबॉक्सिंग के कारण। 5
कोई ऑब्जेक्ट नहीं है इसलिए इसे किसी ऑब्जेक्ट में लपेटा गया है (Integer
इस मामले में), और Integer
Number
है।
मूल रूप से, यह क्योंकि Number
एक अमूर्त वर्ग है - कोई निर्माता कि Number(5)
से मेल खाती है, और यहां तक कि अगर वहाँ था तुम अब भी सीधे वर्ग का दृष्टांत है क्योंकि यह सार है में सक्षम नहीं होगा वहाँ है।
जैसा कि बोम्बे बताते हैं, आपके दूसरे मामले में आप वास्तव में Integer
ऑब्जेक्ट बना रहे हैं * - जो Number
के उप-वर्ग के रूप में, इस तरह के चर को असाइन किया जा सकता है। और चूंकि यह एक ठोस वर्ग है, आप इसे तुरंत चालू कर सकते हैं।
* हालांकि व्यवहार में यह वास्तव में Integer.valueOf(5)
के बराबर है, जो सूर्य जेआरई पर एक अतिरिक्त इंटीजर ऑब्जेक्ट नहीं बनाएगा लेकिन पूल वाले संस्करण (जैसे फ्लाईवेट पैटर्न) का उपयोग करेगा।
यह एक स्थिर वर्ग क्यों होना चाहिए? –
+1 आपका उत्तर बोम्बे के मुकाबले बेहतर है, उसने अपने उत्तर में अमूर्त शब्द का भी उपयोग नहीं किया था, यही सवाल है कि प्रश्न – whiskeysierra
@ करलोस - मेरा मतलब था * ठोस * वर्ग, स्थैतिक नहीं; मैंने इस टाइपो को ठीक किया है ("thinko"?), इसे इंगित करने के लिए धन्यवाद। AFAIK में स्थिर वर्ग के रूप में ऐसी कोई चीज़ नहीं है (स्थिर आंतरिक कक्षाओं को अनदेखा करना जो एक अलग चीज़ हैं)। –
यह नहीं होना चाहिए। autoboxing एक बड़ी गलती है।
मुझे असहमत होना होगा। int गलती है। भाषा सरल होगी सबकुछ एक इंटीजर (या लंबी या जो भी संख्या के उप-वर्ग के रूप में परिभाषित किया गया था) के रूप में परिभाषित किया जाएगा। फिर संकलक को इसे एक int (या जो भी आदिम में अनुकूलित करें) बेशक इसे == तरीके से संभालना होगा । – MrJacqes
यह कैसे काम करेगा निम्नलिखित के समान है:
List bob = new ArrayList();
सूची, एक अंतरफलक है, तो आप इसे सीधे का दृष्टांत नहीं कर सकते। हालांकि, आप प्रकार सूची का एक चर घोषित कर सकते हैं और उसके बाद उस ठोस ऑब्जेक्ट को असाइन कर सकते हैं जो उस इंटरफ़ेस को लागू करता है। एक ही पंक्ति के साथ, आप प्रकार संख्या का एक चर घोषित कर सकते हैं और उसके बाद उस मूल्य वस्तु को असाइन कर सकते हैं जो कि उस प्रकार का ठोस उदाहरण है। क्या आप कार्यात्मक कोड है सभी इरादों और उद्देश्यों के लिए (autoboxing के कारण), के साथ किया है:
Number n = new Integer(5);
- 1. PHP - यदि संख्या 3 और 5 से विभाजित है तो
- 2. क्या सी # डबल अर्धविराम की अनुमति देता है; ; यदि हां, तो क्या कोई विशेष तरीका है?
- 3. यदि @Entity है तो "एनोटेटेड क्लासेस" की आवश्यकता क्यों है?
- 4. यदि डबल नंबर पूरी संख्या है तो दशकों को प्रदर्शित नहीं किया जा रहा है?
- 5. मुझे unique_ptr की प्रतिलिपि बनाने की अनुमति क्यों है?
- 6. jQuery - ली की संख्या की गणना कैसे करें और यदि संख्या विषम है तो एक जोड़ें?
- 7. एन संख्या
- 8. यदि कक्षा लंबे समय तक चलती है तो कक्षाएं
- 9. एंड्रॉइड पढ़ने/लिखने की अनुमति
- 10. यदि मेरा नियोक्ता एमएस गोल्ड पार्टनर है, तो मुझे घर पर स्थापित करने की क्या अनुमति है?
- 11. MustInherit और सार कक्षा
- 12. हैश मैप मानचित्र को कार्यान्वित क्यों करता है यदि यह सार मैप बढ़ाता है?
- 13. मुझे यहां अर्धविराम की आवश्यकता क्यों है?
- 14. क्या मुझे एचटीएमएल 5 वीडियो में मौजूदा फ्रेम की संख्या मिल सकती है?
- 15. एप्पलस्क्रिप्ट; अंतरिक्ष संख्या एन
- 16. इंटरफ़ेस/सार कक्षा
- 17. टाइपस्क्रिप्ट क्यों चेतावनी के बिना स्ट्रिंग से संख्या में कनवर्ट करने की अनुमति देता है
- 18. Jquery सत्यापन - बिना अग्रणी शून्य के नंबर की अनुमति दें?
- 19. बाइनरी में 1 की संख्या की संख्या कैसे गिनती है?
- 20. यदि रूबी और पायथन दोनों में बंदर पैचिंग की अनुमति है, तो रूबी में यह और अधिक विवादास्पद क्यों है?
- 21. सार कक्षा के साथ-साथ इंटरफ़ेस की आवश्यकता है?
- 22. यदि तर्कों की गलत संख्या ** तर्कों में गुजरती है तो उठाने का क्या अपवाद है?
- 23. क्यों संख्या अक्षरों की संख्या विधियों तक पहुंच नहीं है?
- 24. क्यों स्ट्रिंग स्ट्रिंग की अनुमति है और कंपाइलर द्वारा int int की अनुमति नहीं है?
- 25. jQuery: यदि कक्षा = सक्रिय है?
- 26. मुझे निकटतम प्रधान संख्या कैसे मिल सकती है?
- 27. टेस्ट करता है, तो संख्या के अंदर परिपत्र अंतराल है
- 28. यदि रिकॉर्ड मौजूद है, तो
- 29. क्या कोई भी वेब ब्राउजर लिखने की अनुमति देता है?
- 30. नेस्टेड फ़ंक्शंस की अनुमति नहीं है लेकिन क्यों नेस्टेड फ़ंक्शन प्रोटोटाइप की अनुमति है? [सी ++]
इसे प्रमाणित करने के अपने आप को सिर्फ जोड़ने println (n.getClass() getName()।); – Buhb
सवाल मुख्य रूप से अमूर्त वर्गों के बारे में था। – whiskeysierra
नहीं, यह "संख्या एन = 5 कैसे करता है;" काम करता है यदि 'संख्या' सार है?" यह कैसे करता है इसके लिए ऊपर देखें। :) – Bombe