2011-10-09 20 views
9

दरअसल, (एक संस्करण या कुछ और नीचे छीन) पूर्णांक वर्ग का एक हिस्सा पूर्णांक है या यह कोई अन्य विषय कुछ है?जावा में एक वस्तु int है?

मुझे पता है पूर्णांक एक मान प्रकार और पूर्णांक एक संदर्भ प्रकार है, लेकिन पूर्णांक वैसे भी वस्तु से विरासत है कि कर रहा हूँ?

(मैं यह सोचते हैं कि इस संबंध पूर्णांक, लंबे, बूलियन आदि में सभी समान। पूर्णांक सिर्फ सुविधा के लिए चुना जाता है किया गया था)

उत्तर

16
  • जावा में मूल प्रकार ऑब्जेक्ट्स नहीं हैं और ऑब्जेक्ट से प्राप्त नहीं होते हैं।

  • जावा 1.5 के बाद से पूर्णांक और पूर्णांक (और अन्य प्रकार) के बीच ऑटो मुक्केबाजी अनुमति की शुरुआत की।

  • क्योंकि ints वस्तुओं है कि जेनेरिक प्रकार पैरामीटर के रूप में इस्तेमाल नहीं किया जा सकता जैसे नहीं हैं list<T> में T

0

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

+0

तो तुम वस्तु कह रहे हैं = संदर्भ प्रकार? – soandos

+0

@soandos: हाँ। जावा में सभी वर्ग उदाहरण संदर्भ प्रकार हैं। – siride

1

आप पूर्णांक के बारे में बात करते हैं:

पूर्णांक वर्ग एक वस्तु में आदिम प्रकार int के एक मूल्य गिर्द घूमती है। प्रकार इंटीजर की एक वस्तु में एक फ़ील्ड होता है जिसका प्रकार int है।

इसके अलावा, इस वर्ग के लिए उपयोगी किसी पूर्णांक पर एक स्ट्रिंग और एक स्ट्रिंग के लिए एक पूर्णांक परिवर्तित करने के लिए कई तरीके हैं, साथ ही अन्य स्थिरांक और तरीके प्रदान जब एक पूर्णांक के साथ काम कर।

पूर्णांक आपत्ति नहीं है, इसकी एक आदिम प्रकार।

+0

तो यह ऑब्जेक्ट से प्राप्त नहीं होता है? – soandos

+0

@soandos: यह * कुछ भी * से विरासत में मिलता है। यह अवधि का उत्तराधिकारी नहीं हो सकता क्योंकि प्राइमेटिव संदर्भ प्रकार नहीं हैं। यह सी # के सरल प्रकार के समान है। –

+0

अन्य भाषाओं में structs केवल इतना तथ्य प्राप्त कर सकते हैं कि यह एक आदिम है पर्याप्त नहीं है – soandos

16

"Primitive Data Types" से: "आदिम प्रकार भाषा में बनाया गया विशेष डेटा प्रकार के होते हैं, वे कर रहे हैं कक्षा से बनाए गए वस्तुओं नहीं। " बदले में, इसका मतलब है कि नहीं, int java.lang से प्राप्त नहीं होता है। किसी भी तरह से ऑब्जेक्ट करें क्योंकि केवल "कक्षा से बनाए गए ऑब्जेक्ट्स" ऐसा करते हैं। पर विचार करें:

int x = 5; 

आदेश में x नामित वस्तु से प्राप्त करना बात के लिए, उस चीज़ एक प्रकार है की आवश्यकता होगी। ध्यान दें कि मैं x और उस चीज़ के बीच अंतर कर रहा हूं जो इसे नाम देता है। x में एक प्रकार है, जो int है, लेकिन x नाम की बात मान 5 है, जिसमें कोई प्रकार नहीं है और स्वयं ही है। यह बिट्स का एक अनुक्रम है जो अभिन्न मूल्य "5" का प्रतिनिधित्व करता है। इसके विपरीत, पर विचार करें:

java.lang.Number y = new java.lang.Integer(5); 

इस मामले में, y प्रकार संख्या है, और बात y नामित प्रकार पूर्णांक है। y नाम की बात एक वस्तु है। y या किसी और चीज के बावजूद इसका एक अलग प्रकार है।

+1

+1 किसी संदर्भ को खोजने के लिए परेशान करने के लिए – mikek3332002

+0

मुझे कोई संदेह है - क्या कोई तरीका, जिसका रिटर्न प्रकार 'ऑब्जेक्ट' है, वास्तव में 'int' वापस आ सकता है? यदि हां, तो, मैं कॉलिंग वातावरण में 'ऑब्जेक्ट' से 'int' वापस कैसे प्राप्त कर सकता हूं? –

+0

@ करण चढा आपको टिप्पणी के बजाए इसे एक नए प्रश्न के रूप में पोस्ट करना चाहिए। यह देखने के लिए चारों ओर जांचना सुनिश्चित करें कि क्या पहले से ही एक ही प्रश्न पूछे जा चुके हैं या नहीं। –

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