"आणि आता, डिएगोचा एक छोटा धडा. थोडक्यात आणि मुद्दा. संदर्भ प्रकार रूपांतरणांबद्दल."
"ऑब्जेक्ट व्हेरिएबल्सपासून सुरुवात करूया. तुम्ही अशा व्हेरिएबलला कोणताही संदर्भ प्रकार नियुक्त करू शकता ( रूपांतरण रुंद करणे ). तथापि, असाइनमेंट दुसर्या दिशेने करण्यासाठी ( संकुचित रूपांतरण ), तुम्ही स्पष्टपणे कास्ट ऑपरेशन सूचित केले पाहिजे:"
कोड | वर्णन |
---|---|
|
एक सामान्य रुंदीकरण संदर्भ रूपांतरण |
|
एक सामान्य संकुचित संदर्भ रूपांतरण |
|
रुंदीकरण रूपांतरण. |
|
रनटाइम त्रुटी! तुम्ही स्ट्रिंग संदर्भासाठी पूर्णांक संदर्भ कास्ट करू शकत नाही. |
|
रनटाइम त्रुटी! तुम्ही फ्लोट संदर्भासाठी पूर्णांक संदर्भ कास्ट करू शकत नाही. |
|
त्याच प्रकारात रूपांतरण. एक संकुचित संदर्भ रूपांतरण. |
" रुंदीकरण किंवा संकुचित संदर्भ रूपांतरण ऑब्जेक्टमध्ये कोणत्याही प्रकारे बदल करत नाही. अरुंद (किंवा रुंदीकरण) भाग विशेषत: असाइनमेंट ऑपरेशनमध्ये व्हेरिएबलचे टाइप-चेकिंग आणि त्याचे नवीन मूल्य समाविष्ट करते (समाविष्ट नाही) या वस्तुस्थितीचा संदर्भ देते. "
"हे दुर्मिळ उदाहरण आहे जिथे सर्वकाही स्पष्ट आहे."
" या उदाहरणांमधील त्रुटी टाळण्यासाठी , आमच्याकडे ऑब्जेक्ट व्हेरिएबलद्वारे कोणत्या प्रकाराचा संदर्भ आहे हे शोधण्याचा मार्ग आहे: "
int i = 5;
float f = 444.23f;
String s = "17";
Object o = f; // o stores a Float
if (o instanceof Integer)
{
Integer i2 = (Integer) o;
}
else if (o instanceof Float)
{
Float f2 = (Float) o; // This if block will be executed
}
else if (o instanceof String)
{
String s2 = (String) o;
}
"तुम्हाला ऑब्जेक्टच्या प्रकाराबाबत 100% खात्री असल्याशिवाय प्रत्येक रुंदीकरणाच्या रूपांतरणापूर्वी तुम्ही ही तपासणी करावी."
"समजले."
GO TO FULL VERSION