কম্পিউটার টিউটোরিয়াল

জাভাতে অ্যারের (Array) toString() মেথড ওভাররাইড করা সম্ভব কি?

না, জাভাতে আপনি Object ক্লাসের toString() মেথড ওভাররাইড করতে পারেন, কিন্তু যদি আপনি কোনো ক্লাসের অবজেক্ট অ্যারে তৈরি করে সেটির কন্টেন্ট প্রিন্ট করতে toString() ওভাররাইড করে চান, তবে এটি সম্ভব নয়। কারণ অ্যারে ক্লাসগুলো জাভা ল্যাঙ্গুয়েজ দ্বারা ইমপ্লিসিটলি তৈরি হয় এবং তাদের toString() মেথড ওভাররাইড করা যায় না।

তবে অ্যারের কন্টেন্ট সুন্দরভাবে প্রিন্ট করার জন্য অল্প Аль্টারনেটিভ পদ্ধতি আছে:

১. Arrays.toString() মেথড ব্যবহার

Arrays.toString() যেকোনো অ্যারে (অবজেক্ট অ্যারে সহ) গ্রহণ করে এর স্ট্রিং রিপ্রেজেন্টেশন রিটার্ন করে। এটি প্রতিটি এলিমেন্টের toString() কল করে।

উদাহরণ

import java.util.Arrays;

class Student {
    String name = "Krishna";
    int age = 20;
    Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String toString() {
        return "Name: " + this.name + " Age: " + this.age;
    }
}

public class Example {
    public static void main(String args[]) {
        Student std1 = new Student("Krishna", 20);
        Student std2 = new Student("Radha", 25);
        Student std3 = new Student("Trupthi", 30);
        Student std4 = new Student("David", 35);
        Student std5 = new Student("Moksha", 40);
        Student students[] = {std1, std2, std3, std4, std5};
        System.out.println(Arrays.toString(students));
    }
}

আউটপুট

[Name: Krishna Age: 20, Name: Radha Age: 25, Name: Trupthi Age: 30, Name: David Age: 35, Name: Moksha Age: 40]

২. Arrays.asList() মেথড ব্যবহার

এটি অ্যারেকে লিস্টে রূপান্তর করে, যার toString() আউটপুট সাদৃশ্য।

System.out.println(Arrays.asList(students));

আউটপুট

[Name: Krishna Age: 20, Name: Radha Age: 25, Name: Trupthi Age: 30, Name: David Age: 35, Name: Moksha Age: 40]

৩. ArrayList সাবক্লাসিং (অল্টারনেটিভ)

অ্যারে ব্যবহার না করে ArrayList এক্সটেন্ড করে কাস্টম ক্লাস বানানো যায়।

import java.util.ArrayList;

public class Example extends ArrayList<Object> {
    public static void main(String args[]) {
        Example obj = new Example();
        obj.add(new Student("Krishna", 20));
        obj.add(new Student("Radha", 25));
        // ...
        System.out.println(obj.toString()); // ArrayList-এর toString() কল হবে
    }
}

সুপারিশ: সাধারণ ব্যবহারের জন্য Arrays.toString() বা Arrays.deepToString() (নেস্টেড অ্যারের জন্য) সবচেয়ে সহজ এবং স্ট্যান্ডার্ড পদ্ধতি।

  1. জাভাতে printf() মেথড ব্যবহার করে ফরম্যাটেড টেক্সট প্রিন্ট করা

  2. জাভাতে JSON অ্যারে কীভাবে লিখবেন/তैयার করবেন?

  3. জাভাতে JSON অ্যারে কীভাবে পড়বেন/পার্স করবেন?

  4. জাভাতে toString() ওভাররাইড কেন: অবজেক্ট রিপ্রেজেন্টেশন উন্নত করা