ডিফল্ট কনস্ট্রাক্টর
- একটি ডিফল্ট কনস্ট্রাক্টর হল একটি 0 আর্গুমেন্ট কনস্ট্রাক্টর যেটিতে সুপার ক্লাস কনস্ট্রাক্টরের কাছে একটি নো-আর্গুমেন্ট কল রয়েছে।
- নতুন তৈরি বস্তুতে ডিফল্ট মান নির্ধারণ করা ডিফল্ট কনস্ট্রাক্টরের প্রধান দায়িত্ব।
- কোডটিতে কম্পাইলার একটি ডিফল্ট কনস্ট্রাক্টর লেখে শুধুমাত্র যদি প্রোগ্রামটি ক্লাসে কোন কনস্ট্রাক্টর না লেখে।
- ডিফল্ট কনস্ট্রাক্টরের অ্যাক্সেস মডিফায়ার সবসময় ক্লাস মডিফায়ারের মতোই কিন্তু এই নিয়মটি শুধুমাত্র “পাবলিক” -এর জন্য প্রযোজ্য এবং “ডিফল্ট” মডিফায়ার।
কখন কম্পাইলার একটি ডিফল্ট কনস্ট্রাক্টর যোগ করবে
- কম্পাইলার কোডে একটি ডিফল্ট কনস্ট্রাক্টর যোগ করে তখনই যখন প্রোগ্রামার কোডে কোন কনস্ট্রাক্টর না লেখে।
- যদি প্রোগ্রামার কোডে কোনো কনস্ট্রাক্টর লেখে, তাহলে কম্পাইলার কোনো কনস্ট্রাক্টর যোগ করে না।
- প্রতিটি ডিফল্ট কনস্ট্রাক্টর একটি 0 আর্গুমেন্ট কনস্ট্রাক্টর কিন্তু প্রতি 0 আর্গুমেন্ট কনস্ট্রাক্টর ডিফল্ট কনস্ট্রাক্টর নয়৷
প্যারামিটারাইজড কনস্ট্রাক্টর
- প্যারামিটারাইজড কনস্ট্রাক্টর হল কনস্ট্রাক্টর যাদের নির্দিষ্ট সংখ্যক আর্গুমেন্ট আছে পাস করতে হবে।
- একটি প্যারামিটারাইজড কনস্ট্রাক্টরের উদ্দেশ্য হল বিভিন্ন অবজেক্টের ইনস্ট্যান্স ভেরিয়েবলে ব্যবহারকারী-কাঙ্খিত নির্দিষ্ট মান নির্ধারণ করা।
- একটি প্যারামিটারাইজড কনস্ট্রাক্টর একটি প্রোগ্রামার দ্বারা স্পষ্টভাবে লেখা হয়৷ ৷
- ডিফল্ট কনস্ট্রাক্টরের অ্যাক্সেস মডিফায়ার সবসময় ক্লাস মডিফায়ারের মতোই কিন্তু এই নিয়মটি শুধুমাত্র “পাবলিক”-এর জন্য প্রযোজ্য এবং “ডিফল্ট” মডিফায়ার।
উদাহরণ
public class Student { int roll_no; String stu_name; Student(int i, String n) { // Parameterized constructor roll_no = i; stu_name = n; } void display() { System.out.println(roll_no+" "+stu_name); } public static void main(String args[]) { Student s1 = new Student(1,"Adithya"); Student s2 = new Student(2,"Jai"); s1.display(); s2.display(); } }
উপরের প্রোগ্রামে, প্রোগ্রামার 2 প্যারামিটার সহ একটি প্যারামিটারাইজড কনস্ট্রাক্টরকে সংজ্ঞায়িত করে। এখন কম্পাইলার কোডে কোনো ডিফল্ট কনস্ট্রাক্টর যোগ করে না এবং প্রোগ্রামার কোনো 0 আর্গুমেন্ট কনস্ট্রাক্টর লেখেনি।
আউটপুট
1 Adithya 2 Jai