একটি কনস্ট্রাক্টর একটি বস্তুর সাপেক্ষে একটি নির্দিষ্ট শ্রেণীর নন-স্ট্যাটিক সদস্যদের আরম্ভ করা।
একটি ইন্টারফেসে কনস্ট্রাক্টর
- একটি ইন্টারফেস জাভাতে একটি কনস্ট্রাক্টর নেই কারণ ইন্টারফেসের সমস্ত ডেটা সদস্য পাবলিক স্ট্যাটিক ফাইনাল ডিফল্টরূপে, তারা ধ্রুবক (ঘোষণার সময় মান নির্ধারণ করুন)।
- কনস্ট্রাক্টরের মাধ্যমে শুরু করার জন্য একটি ইন্টারফেসে কোনো ডেটা সদস্য নেই।
- একটি পদ্ধতি কল করার জন্য, আমাদের একটি বস্তুর প্রয়োজন, যেহেতু ইন্টারফেসের পদ্ধতিগুলির একটি বডি নেই তাই একটি ইন্টারফেসে পদ্ধতিগুলিকে কল করার কোন প্রয়োজন নেই৷
- যেহেতু আমরা ইন্টারফেসে মেথডগুলোকে কল করতে পারি না, তাই ইন্টারফেসের জন্য কোনো অবজেক্ট তৈরি করার প্রয়োজন নেই এবং এতে কনস্ট্রাক্টর থাকার কোনো প্রয়োজন নেই।
উদাহরণ 1
ইন্টারফেস সংযোজন { int add(int i, int j);} পাবলিক ক্লাস টেস্ট প্রয়োগ যোগ করে { পাবলিক int add(int i, int j) { int k =i+j; ফেরত k; } পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং আর্গস[]) { টেস্ট টি =নতুন টেস্ট(); System.out.println("k মান হল:" + t.add(10,20)); }}
আউটপুট
k মান হল:30
একটি ক্লাসে কনস্ট্রাক্টর
- নির্মাণকারীর উদ্দেশ্য একটি ক্লাসে ক্ষেত্রগুলি শুরু করতে ব্যবহৃত হয় কিন্তু বস্তু তৈরি করতে নয়৷
- যখন আমরা একটি বিমূর্ত সুপারক্লাসের একটি নতুন উদাহরণ তৈরি করার চেষ্টা করি, তখন কম্পাইলার একটি ত্রুটি দেবে৷
- তবে, আমরা একটি বিমূর্ত শ্রেণীর উত্তরাধিকারী হতে পারি এবং এর ভেরিয়েবল সেট করে এর কনস্ট্রাক্টর ব্যবহার করতে পারি।
উদাহরণ 2
বিমূর্ত শ্রেণীর কর্মচারী { সর্বজনীন স্ট্রিং empName; বিমূর্ত ডবল ক্যালস্যালারী(); কর্মচারী(স্ট্রিং নাম) { this.empName =name; // বিমূর্ত ক্লাসের কনস্ট্রাক্টর }} ক্লাস ম্যানেজার কর্মচারী { ম্যানেজার (স্ট্রিং নাম) { সুপার (নাম) প্রসারিত করে // সাবক্লাসের কনস্ট্রাক্টরে নাম সেট করা } ডবল ক্যালসালারি() { রিটার্ন 50000; }}পাবলিক ক্লাস টেস্ট { পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং আর্গস[]) { কর্মচারী ই =নতুন ম্যানেজার("আদিথ্যা"); System.out.println("ম্যানেজারের নাম হল:" + e.empName); System.out.println("বেতন হল:" + e.calcSalary()); }}আউটপুট
ব্যবস্থাপকের নাম হল:AdithyaSalary is:50000.0