2011-06-24 5 views
6

उदाहरण निम्नलिखित के लिए वाक्य रचना सही कोड हैक्या जावा में कस्टम प्रकारों को परिभाषित करना संभव है जो प्राइमेटिव के साथ काम करते हैं?

Double number = 10.0; 

यह इस तरह मूल्य

Price myPrice = 10.0; 

असल में संकलित रूप में अपने ही वर्ग को परिभाषित करना संभव है?

+4

आपके पास स्वीकृत उत्तर के बिना 40 से अधिक प्रश्न हैं। –

उत्तर

7

ऑटो-मुक्केबाजी और ऑटो-अनबॉक्सिंग केवल प्राइमेटिव के साथ काम करता है। जिस अवधारणा के बारे में आप बात कर रहे हैं वह सी ++ रूपांतरणों के समान है। दुर्भाग्यवश, जावा में ऐसी कोई चीज़ नहीं है। सबसे अच्छा तुम कर सकते हो

Price myPrice = new Price(10.0); 
2

नहीं, आप संख्यात्मक मात्राओं के लिए अपने स्वयं के आदिम प्रकार को परिभाषित नहीं कर सकते हैं।

Price myPrice घोषित करने का अर्थ है कि परिवर्तनीय myPrice प्रकार की कीमत होगी और इसका उदाहरण इसके रूप में उपयोग किया जाएगा।

आप निम्नलिखित मान्य हो सकते हैं।

मान लीजिए कि आप प्रकार Price के प्रकार घोषित करते हैं। कुछ उदाहरण चर को myPrice संदर्भ के माध्यम से एक्सेस किया जा सकता है।

Price myPrice = new Price(); 
myPrice.value = 10.0; 
myPrice.currency = "Dollar"; 
etc .... 
+0

@ जोचिम: मूल्य और मुद्रा 'मूल्य' वर्ग के आवृत्ति चर हैं। इसलिए उन्हें 'myPrice' संदर्भ –

+0

के माध्यम से एक्सेस किया जा सकता है लेकिन मेरे पास 'myPrice = new Price() नहीं है,' 'इसलिए लाइन 2 एनपीई फेंक देगी। जोआचिम का यही अर्थ था। संपादित करें: बहुत देर हो चुकी है: -/ – f1sh

+0

^हाँ ... ओह। याद किया कि। :-) –

0

आप, Double वर्ग विस्तार नहीं कर सकते, क्योंकि यह अंतिम है।

लेकिन आप Number कक्षा का विस्तार कर सकते हैं और Comparable इंटरफ़ेस लागू कर सकते हैं - जिस तरह से वास्तविक Double class is created

0

नहीं। यह भाषा में हार्ड-वायर्ड है।

केवल प्राइमेटिव new कीवर्ड के बिना तत्काल, String को छोड़कर तत्काल हो सकता है, हालांकि एक आदिम नहीं, आदिम वाक्यविन्यास का उपयोग करके असाइन किया जा सकता है। यानी new String("foo") और "foo" यह करेंगे (ध्यान दें कि ये बिल्कुल समान नहीं हैं)।

+0

कड़ाई से बोलने वाले प्राइमेटिव को तुरंत चालू नहीं किया जा सकता है, वे ऑब्जेक्ट्स नहीं हैं। हालांकि, ऑटो-मुक्केबाजी कुछ मामलों में आदिम रैपर ऑब्जेक्ट्स के अंतर्निहित निर्माण की अनुमति देती है। –

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