এক কনস্ট্রাক্টর মেথডের মতোই কিন্তু এটি ক্লাসের অবজেক্ট তৈরি করার সময় আহ্বান করা হয়। এটি সাধারণত ক্লাসের ইনস্ট্যান্স ভেরিয়েবল ইনিশিয়ালাইজ করার জন্য ব্যবহৃত হয়। কনস্ট্রাক্টরের নাম ক্লাসের নামের সাথে মিলে থাকে এবং এর কোনো রিটার্ন টাইপ নেই।
জাভাতে কনস্ট্রাক্টর দুই প্রকার: প্যারামিটারাইজড কনস্ট্রাক্টর এবং নো-আর্গ কনস্ট্রাক্টর।
প্যারামিটারাইজড কনস্ট্রাক্টর
এক প্যারামিটারাইজড কনস্ট্রাক্টর প্যারামিটার গ্রহণ করে যাদি ইনস্ট্যান্স ভেরিয়েবল ইনিশিয়ালাইজ করা যায়। এর মাধ্যমে ক্লাস ইনস্ট্যান্টিয়েট করার সময় ডাইনামিকভাবে ভিন্ন ভ্যালু দিয়ে ইনিশিয়ালাইজ করা সম্ভব।
উদাহরণ
import java.util.Scanner;
public class Test {
int num;
String data;
float flt;
Test(int num, String data, float flt) {
this.num = num;
this.data = data;
this.flt = flt;
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter an integer value: ");
int num = sc.nextInt();
System.out.println("Enter a string value: ");
String data = sc.next();
System.out.println("Enter a floating point value: ");
float flt = sc.nextFloat();
Test obj = new Test(num, data, flt);
System.out.println(obj.num);
System.out.println(obj.data);
System.out.println(obj.flt);
}
}
আউটপুট
Enter an integer value: 1024
Enter a string value: test
Enter a floating point value: 11.2
1024
test
11.2
নো-আর্গ কনস্ট্রাক্টর
এক নো-আর্গ কনস্ট্রাক্টর কোনো প্যারামিটার গ্রহণ করে না। এটি ক্লাস ভেরিয়েবলগুলকে তাদের ডিফল্ট ভ্যালুতে ইনস্ট্যান্টিয়েট করে (অবজেক্টের জন্য null, float/double-এর জন্য 0.0, Boolean-এর জন্য false, byte/short/int/long-এর জন্য 0)।
উদাহরণ
public class Test {
int num;
String data;
float flt;
Test() {
this.num = 100;
this.data = "test";
this.flt = 125.33f;
}
public static void main(String args[]) {
Test obj = new Test();
System.out.println(obj.num);
System.out.println(obj.data);
System.out.println(obj.flt);
}
}
আউটপুট
100
test
125.33