ওওপি কনস্ট্রাক্টর (Constructor)
কনস্ট্রাক্টর হলো একটি ক্লাসের বিশেষ কাজ বা মেথড যা অবজেক্ট তৈরির সাথে সাথেই নিজে নিজেই চালু হয়ে যায়। এর প্রধান কাজ হলো অবজেক্টের প্রাথমিক মানগুলো সেট করে দেওয়া। যুক্তি ল্যাঙ্গুয়েজে কনস্ট্রাক্টরকে শুরু() নামে ডাকা হয়।
নোট
ইউজার যখন নতুন কিওয়ার্ড দিয়ে কোনো অবজেক্ট তৈরি করেন, তখন ইন্টারপ্রেটার সবার আগে ওই ক্লাসের শুরু() মেথডটিকে খুঁজে বের করে এবং এক্সিকিউট করে।
১. সাধারণ কনস্ট্রাক্টর ব্যবহার
নিচে একটি ক্লাস দেখানো হলো যা অবজেক্ট তৈরির সাথে সাথেই একটি মেসেজ দিবে।
ক্লাস রোবট {
শুরু() {
দেখাও "রোবট সক্রিয় হচ্ছে...";
নতুনলাইন;
}
}
// এখানে অবজেক্ট তৈরি করা মাত্রই শুরু() মেথডটি চলবে
রোবট আর১ = নতুন রোবট();
২. প্যারামিটারসহ কনস্ট্রাক্টর
আপনি চাইলে অবজেক্ট তৈরির সময়ই ডাটা পাঠিয়ে দিতে পারেন।
ক্লাস মোবাইল {
বাক্য মডেল;
শুরু(বাক্য ম) {
মডেল = ম;
}
তথ্য_দেখাও() {
দেখাও "এটি একটি " >> মডেল >> " ফোন।";
নতুনলাইন;
}
}
মোবাইল এম১ = নতুন মোবাইল("iPhone");
এম১.তথ্য_দেখাও();
৩. বাস্তব উদাহরণ: গেম ক্যারেক্টার
একটি গেমে ক্যারেক্টার তৈরি করার সময় তার নাম এবং হেলথ সেট করা:
ক্লাস হিরো {
বাক্য নাম;
পূর্ণসংখ্যা হেলথ;
শুরু(বাক্য ন, পূর্ণসংখ্যা হ) {
নাম = ন;
হেলথ = হ;
}
স্ট্যাটাস() {
দেখাও নাম >> " এর হেলথ: " >> হেলথ;
নতুনলাইন;
}
}
হিরো টাইগার = নতুন হিরো("টাইগার", ১০০);
টাইগার.স্ট্যাটাস();
টিপ: কনস্ট্রাক্টর ব্যবহার করলে কোড অনেক বেশি ক্লিন হয় এবং ভুল হওয়ার সম্ভাবনা কমে যায়।
৪. ইন-ডেপথ উদাহরণ: ব্যাংক অ্যাকাউন্ট অটোমেশন
অ্যাকাউন্ট খোলার সাথে সাথেই ব্যালেন্স সেট করা এবং বর্তমান সময় লগ করা:
ক্লাস ব্যাংক {
দশমিক ব্যালেন্স;
সময় খোলার_সময়;
শুরু(দশমিক প্রাথমিক_জমা) {
ব্যালেন্স = প্রাথমিক_জমা;
খোলার_সময় = এখন;
দেখাও "অ্যাকাউন্ট খোলা হয়েছে: " >> খোলার_সময়_ঘন্টা >> ":" >> খোলার_সময়_মিনিট;
নতুনলাইন;
}
চেক_ব্যালেন্স() {
দেখাও "বর্তমান ব্যালেন্স: " >> ব্যালেন্স;
নতুনলাইন;
}
}
ব্যাংক কাস্টমার১ = নতুন ব্যাংক(৫০০.০);
কাস্টমার১.চেক_ব্যালেন্স();