টাইপ কাস্টিং

ভেরিয়েবল এবং ডেটাটাইপস - জাভা প্রোগ্রামিং (Java Programming) - Computer Programming

1k

Java-তে টাইপ কাস্টিং হলো ডেটার এক ধরনের থেকে অন্য ধরনের রূপান্তর করার প্রক্রিয়া। এটি তখনই প্রয়োজন হয় যখন আমাদের ডেটার টাইপ পরিবর্তন করতে হয়, যেমন int থেকে double বা double থেকে int

টাইপ কাস্টিংয়ের ধরন

Java-তে দুটি ধরণের টাইপ কাস্টিং রয়েছে:

প্রিমিটিভ টাইপ কাস্টিং: প্রিমিটিভ ডেটা টাইপের মধ্যে কাস্টিং।

  • Widening Casting (Automatic Type Conversion): ছোট ডেটা টাইপ থেকে বড় ডেটা টাইপে রূপান্তর (স্বয়ংক্রিয়ভাবে ঘটে)।
  • Narrowing Casting (Explicit Type Conversion): বড় ডেটা টাইপ থেকে ছোট ডেটা টাইপে রূপান্তর (ম্যানুয়ালি করতে হয়)।

নন-প্রিমিটিভ টাইপ কাস্টিং: অবজেক্ট বা ক্লাসের মধ্যে কাস্টিং।

১. প্রিমিটিভ টাইপ কাস্টিং

১.১ Widening Casting (Automatic Type Conversion)

Widening Casting ছোট ডেটা টাইপ থেকে বড় ডেটা টাইপে রূপান্তরের জন্য ব্যবহার করা হয়। এটি স্বয়ংক্রিয়ভাবে ঘটে এবং কোনো তথ্যের ক্ষতি হয় না।

ছোট টাইপবড় টাইপ
byteshort
shortint
intlong
longfloat
floatdouble

উদাহরণ:

int num = 10;
double doubleNum = num; // Automatic casting: int to double
System.out.println("Integer: " + num);
System.out.println("Double: " + doubleNum);

এখানে num ভেরিয়েবলটি int টাইপের ছিল, যা স্বয়ংক্রিয়ভাবে double টাইপে কাস্টিং হয়েছে।

১.২ Narrowing Casting (Explicit Type Conversion)

Narrowing Casting বড় ডেটা টাইপ থেকে ছোট ডেটা টাইপে রূপান্তরের জন্য ব্যবহৃত হয় এবং এটি করতে ম্যানুয়াল কাস্টিং প্রয়োজন হয়। এখানে তথ্যের কিছু অংশ হারিয়ে যেতে পারে, তাই এটি সতর্কতার সাথে ব্যবহার করা উচিত।

সাধারণ গঠন:

targetType variableName = (targetType) value;

উদাহরণ:

double doubleNum = 10.5;
int num = (int) doubleNum; // Manual casting: double to int
System.out.println("Double: " + doubleNum);
System.out.println("Integer: " + num);

এখানে doubleNum ভেরিয়েবলটি double টাইপের ছিল, যা int টাইপে রূপান্তরিত করা হয়েছে এবং দশমিক অংশটি হারিয়ে গেছে।

২. নন-প্রিমিটিভ টাইপ কাস্টিং (Non-Primitive Type Casting)

নন-প্রিমিটিভ টাইপ কাস্টিং সাধারণত অবজেক্টের সাথে কাজ করতে ব্যবহৃত হয় এবং এটি শুধুমাত্র অবজেক্টগুলির মধ্যে প্রযোজ্য, যাদের মধ্যে ইনহেরিটেন্স সম্পর্ক রয়েছে।

আপকাস্টিং (Upcasting)

উপক্লাস অবজেক্টকে সুপারক্লাস টাইপে কাস্টিং করা হয়। এটি স্বয়ংক্রিয়ভাবে ঘটে।

উদাহরণ:

class Animal {
    void sound() {
        System.out.println("Animal sound");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Dog(); // Upcasting
        animal.sound();
    }
}

এখানে Dog ক্লাসটি Animal ক্লাসের উপক্লাস, তাই Dog অবজেক্টকে Animal টাইপে কাস্টিং করা হয়েছে।

ডাউনকাস্টিং (Downcasting)

সুপারক্লাস অবজেক্টকে উপক্লাস টাইপে কাস্টিং করা হয়। এটি সাধারণত ম্যানুয়ালি করতে হয় এবং ঝুঁকিপূর্ণ হতে পারে, কারণ ClassCastException এর সম্ভাবনা থাকে।

উদাহরণ:

Animal animal = new Dog(); // Upcasting
Dog dog = (Dog) animal;    // Downcasting
dog.bark();

এখানে animal কে Dog টাইপে কাস্টিং করা হয়েছে, যা ডাউনকাস্টিং।

টাইপ কাস্টিং এর সুবিধা এবং সীমাবদ্ধতা

সুবিধা:

  • ডেটা টাইপ পরিবর্তন করার ক্ষমতা দেয়, যা প্রোগ্রামিংয়ে নমনীয়তা বৃদ্ধি করে।
  • বিভিন্ন প্রিমিটিভ এবং নন-প্রিমিটিভ টাইপের মধ্যে মসৃণ ডেটা কনভার্সন সম্ভব।

সীমাবদ্ধতা:

  • Narrowing কাস্টিংয়ের সময় ডেটা ক্ষতির সম্ভাবনা থাকে।
  • ডাউনকাস্টিংয়ে ClassCastException এর সম্ভাবনা থাকে, তাই এটি ব্যবহার করতে সতর্ক থাকতে হয়।

সারসংক্ষেপ

Java তে টাইপ কাস্টিং ডেটার টাইপ পরিবর্তন করতে সাহায্য করে। এটি সাধারণত প্রিমিটিভ ডেটা টাইপ এবং নন-প্রিমিটিভ অবজেক্ট টাইপের মধ্যে প্রযোজ্য। টাইপ কাস্টিংয়ের জন্য দুটি ধরণ রয়েছে: Widening (Automatic) Casting এবং Narrowing (Explicit) Casting

Content added By
Promotion

Are you sure to start over?

Loading...