ক্লাসের অভ্যন্তরে ডিক্লেয়ার করা অ্যারে টাইপের ইনস্ট্যান্স ভেরিয়েবলকে সাধারণ ভেরিয়েবলের মতোই কনস্ট্রাক্টর বা সেটার মেথড দিয়ে ইনিশিয়ালাইজ করা যায়।
পদ্ধতি ১: কনস্ট্রাক্টর দিয়ে ইনিশিয়ালাইজেশন
public class Student {
String name;
int age;
String subs[]; // অ্যারে ইনস্ট্যান্স ভেরিয়েবল
// কনস্ট্রাক্টরে অ্যারে পাস করে ইনিশিয়ালাইজ
Student(String name, int age, String subs[]) {
this.name = name;
this.age = age;
this.subs = subs; // রেফারেন্স অ্যাসাইনমেন্ট
}
public void display() {
System.out.println("Name: " + this.name);
System.out.println("Age: " + this.age);
System.out.print("Subjects: ");
for(int i = 0; i < subs.length; i++) {
System.out.print(subs[i] + " ");
}
}
public static void main(String args[]) {
String subs[] = {"Mathematics", "English", "Science", "Social"};
Student obj = new Student("Krishna", 25, subs);
obj.display();
}
}
আউটপুট
Name: Krishna Age: 25 Subjects: Mathematics English Science Social
পদ্ধতি ২: সেটার (Setter) মেথড দিয়ে ইনিশিয়ালাইজেশন
public class Student {
String name;
int age;
String subs[];
public void setName(String name) { this.name = name; }
public void setAge(int age) { this.age = age; }
public void setSubs(String[] subs) { this.subs = subs; } // সেটার
public void display() { /* ... */ }
public static void main(String args[]) {
String subs[] = {"Mathematics", "English", "Science", "Social"};
Student obj = new Student();
obj.setName("Krishna");
obj.setAge(25);
obj.setSubs(subs); // সেটার কল
obj.display();
}
}
আউটপুট
Name: Krishna Age: 25 Subjects: Mathematics English Science Social
গুরুত্বপূর্ণ নোট: এখানে অ্যারের রেফারেন্স কপি হয় (Shallow Copy)। যদি বাহ্যিকভাবে অ্যারের কন্টেন্ট পরিবর্তন করা হয়, তবে অবজেক্টের內部 স্টেটও পরিবর্তন হবে। Defensive Copying-এর জন্য কনস্ট্রাক্টর/সেটারে this.subs = Arrays.copyOf(subs, subs.length) বা subs.clone() ব্যবহার করুন।