কম্পিউটার

জাভাতে প্রশস্ত কাস্টিং (অন্তর্নিহিত) এবং সংকীর্ণ কাস্টিং (স্পষ্ট) এর মধ্যে পার্থক্য কী?


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. জাভাতে JRadioButton এবং JCheckBox এর মধ্যে পার্থক্য কি?

  2. জাভাতে JTextField এবং JTextArea এর মধ্যে পার্থক্য কি?

  3. জাভাতে JFrame এবং JDialog এর মধ্যে পার্থক্য কি?

  4. জাভাতে GridLayout এবং GridBagLayout এর মধ্যে পার্থক্য কি?