Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में वाइडिंग कास्टिंग (निहित) और संकीर्ण कास्टिंग (स्पष्ट) के बीच अंतर क्या हैं?


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

जावा में कास्टिंग प्रकार टाइप करें

जावा टाइप कास्टिंग को दो प्रकारों में वर्गीकृत किया गया है।

  • कास्टिंग को चौड़ा करना (अंतर्निहित ) - स्वचालित प्रकार रूपांतरण
  • कास्टिंग को छोटा करना (स्पष्ट ) – स्पष्ट रूपांतरण की आवश्यकता है

कास्टिंग को चौड़ा करना (छोटे से बड़े प्रकार)

विस्तार करना टी वैसे रूपांतरण हो सकता है यदि दोनों प्रकार संगत हों और लक्ष्य प्रकार स्रोत प्रकार से बड़ा हो। वाइडिंग कास्टिंग तब होती है जब दो प्रकार संगत होते हैं और लक्ष्य प्रकार स्रोत प्रकार से बड़ा है

उदाहरण1

public class ImplicitCastingExample {
   public static void main(String args[]) {
      byte i = 40;
      // No casting needed for below conversion
      short j = i;
      int k = j;
      long l = k;
      float m = l;
      double n = m;
      System.out.println("byte value : "+i);
      System.out.println("short value : "+j);
      System.out.println("int value : "+k);
      System.out.println("long value : "+l);
      System.out.println("float value : "+m);
      System.out.println("double value : "+n);
   }
}

आउटपुट

byte value : 40
short value : 40
int value : 40
long value : 40
float value : 40.0
double value : 40.0

कक्षा प्रकार की कास्टिंग को चौड़ा करना

नीचे दिए गए उदाहरण में, बच्चा वर्ग छोटा प्रकार है जिसे हम अभिभावक . को सौंप रहे हैं वर्ग प्रकार जो एक बड़ा प्रकार है इसलिए किसी कास्टिंग की आवश्यकता नहीं है।

उदाहरण2

class Parent {
   public void display() {
      System.out.println("Parent class display() called");
   }
}
public class Child extends Parent {
   public static void main(String args[]) {
      Parent p = new Child();
      p.display();
   }
}

आउटपुट

Parent class display() method called

संकीर्ण ढलाई (बड़े से छोटे प्रकार)

जब हम छोटे प्रकार को बड़ा प्रकार निर्दिष्ट कर रहे होते हैं, स्पष्ट कास्टिंग आवश्यक है।

उदाहरण1

public class ExplicitCastingExample {
   public static void main(String args[]) {
      double d = 30.0;
      // Explicit casting is needed for below conversion
      float f = (float) d;
      long l = (long) f;
      int i = (int) l;
      short s = (short) i;
      byte b = (byte) s;
      System.out.println("double value : "+d);
      System.out.println("float value : "+f);
      System.out.println("long value : "+l);
      System.out.println("int value : "+i);
      System.out.println("short value : "+s);
      System.out.println("byte value : "+b);
   }
}

आउटपुट

double value : 30.0
float value : 30.0
long value : 30
int value : 30
short value : 30
byte value : 30


कक्षा प्रकार को छोटा करना

जब हम छोटे टाइप को बड़ा टाइप असाइन कर रहे होते हैं, तो हमें स्पष्ट रूप से . की आवश्यकता होती है टाइपकास्ट यह।

उदाहरण2

class Parent {
   public void display() {
      System.out.println("Parent class display() method called");
   }
}
public class Child extends Parent {
   public void display() {
      System.out.println("Child class display() method called");
   }
   public static void main(String args[]) {
      Parent p = new Child();
      Child c = (Child) p;
      c.display();
   }
}

आउटपुट

Child class display() method called

  1. जावा में JTextField और JTextArea के बीच क्या अंतर हैं?

    JTextField . के बीच मुख्य अंतर और JTextArea जावा में यह है कि एक JTextField पाठ की एक पंक्ति . में प्रवेश करने की अनुमति देता है GUI एप्लिकेशन में जबकि JTextArea पाठ की एक से अधिक पंक्तियाँ entering दर्ज करने की अनुमति देता है GUI एप्लिकेशन में। JTextField एक JTextFeld सबसे महत्वपूर्ण घटकों म

  1. जावा में JFrame और JDialog में क्या अंतर हैं?

    जेफ्रेम फ्रेम में जोड़े गए घटकों को इसकी सामग्री के रूप में संदर्भित किया जाता है, इन्हें contentPane द्वारा प्रबंधित किया जाता है . JFrame . में एक घटक जोड़ने के लिए , हमें इसके contentPane . का उपयोग करना चाहिए इसके बजाय। एक JFrame शीर्षक . के साथ एक विंडो है , सीमा , (वैकल्पिक) मेनू बार और उप

  1. Java में GridLayout और GridBagLayout में क्या अंतर हैं?

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