জাভাতে কনস্ট্রাক্টর চেইনিং

Jabhate Kanastraktara Ce Inim



জাভাতে, কনস্ট্রাক্টররা ক্লাসের ইনস্ট্যান্স শুরু করার ক্ষেত্রে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলি জাভা পদ্ধতির অনুরূপ। যাইহোক, কনস্ট্রাক্টরের নাম সর্বদা ক্লাসের নামের মতোই থাকে যখন একটি সাধারণ পদ্ধতিতে কোনও বৈধ নাম থাকতে পারে। বেশিরভাগ ক্ষেত্রে, এগুলিকে একটি বস্তু ঘোষণা করার জন্য বিশেষ পদ্ধতি হিসাবেও উল্লেখ করা হয়। আপনি কন্সট্রাক্টর চেইনিং তৈরি করতে পারেন যা উত্তরাধিকারের সাহায্যে ঘটে। চাইল্ড/সাবক্লাস কনস্ট্রাক্টর প্রথমে প্যারেন্ট/সুপারক্লাস কনস্ট্রাক্টরকে কল করে এবং তারপরে চাইল্ড-ক্লাস কনস্ট্রাক্টরদের ডাকা যেতে পারে।

এই পোস্টটি জাভাতে কনস্ট্রাক্টর চেইনিং সম্পর্কে বলবে।







জাভাতে কনস্ট্রাক্টর চেইনিং

কন্সট্রাক্টর পরিবর্তন করা একটি কনস্ট্রাক্টরকে অন্য কনস্ট্রাক্টরে বলা উদ্দেশ্য অনুযায়ী কল করার জন্য সবচেয়ে গুরুত্বপূর্ণ পদ্ধতি। কনস্ট্রাক্টর চেইনিংয়ের প্রাথমিক ব্যবহারগুলির মধ্যে একটি হল একাধিক কনস্ট্রাক্টর থাকাকালীন অপ্রয়োজনীয় কোডগুলি এড়ানো। এটি কোডটিকে সহজে বোধগম্য এবং পঠনযোগ্য করে তোলে।



নিচে উল্লিখিত জাভাতে কনস্ট্রাক্টর চেইনিং করার দুটি পদ্ধতি রয়েছে:



কনস্ট্রাক্টর চেইনিং সম্পর্কে আরও ভালভাবে বোঝার জন্য আসুন একের পর এক এই পদ্ধতিগুলি পরীক্ষা করে দেখি।





পদ্ধতি 1: 'this()' কীওয়ার্ড ব্যবহার করে একই ক্লাসের মধ্যে কনস্ট্রাক্টর চেইনিং

যখন কনস্ট্রাক্টর চেইনিং একই শ্রেণীর মধ্যে সঞ্চালিত হয়, তখন জাভা “ এই() ” কীওয়ার্ড ব্যবহার করা হয়। একটি ক্লাস ইন্সট্যান্স শুরু হলে ডিফল্ট কনস্ট্রাক্টরকে ডাকা হবে। এটি ব্যবহার করে অন্য কনস্ট্রাক্টরকে কল করবে ' এই ' কীওয়ার্ড। তারপর, কনসোলে ফলাফল প্রদর্শনের জন্য 'println()' পদ্ধতি ব্যবহার করুন:



মিনিট ( ) {
এই ( 5 ) ;
System.out.println ( 'ডিফল্ট কনস্ট্রাক্টর' ) ;
}


এখন, একটি প্যারামিটার সমন্বিত দ্বিতীয় কনস্ট্রাক্টরকে কল করুন ' 'এবং প্যারামিটারের মান সেট করুন ' এই() ' কীওয়ার্ড। তারপর, ব্যবহার করুন ' println() ' এবং ফলাফল দেখানোর যুক্তি হিসাবে 'a' পাস করুন:

মিনিট ( int a ) {
এই ( 5 , বিশ ) ;
System.out.println ( ) ;
}


এই কনস্ট্রাক্টরে, আমরা দুটি পূর্ণসংখ্যা টাইপ প্যারামিটার পাস করেছি ' ' এবং ' ” এর পরে, 'println()' পদ্ধতি চালু করুন এবং পাস করুন ' a*b যা এই ভেরিয়েবলের গুণফল ফেরত দেবে:

মিনিট ( int a, int b ) {
System.out.println ( * ) ;
}


মধ্যে ' প্রধান() ” পদ্ধতিতে, ডিফল্ট কনস্ট্রাক্টরকে আহ্বান করুন যা স্বয়ংক্রিয়ভাবে অন্যান্য কনস্ট্রাক্টরকে কল করবে এবং কনসোলে ফলাফল প্রদর্শন করবে:

পাবলিক স্ট্যাটিক অকার্যকর প্রধান ( স্ট্রিং আর্গস [ ] ) {
নতুন মিনিট ( ) ;
}


ফলস্বরূপ, সমস্ত কনস্ট্রাক্টরের আউটপুট কনসোলে প্রদর্শিত হবে:


আপনি যদি একাধিক ক্লাসে কনস্ট্রাক্টরকে চেইন করতে চান তবে নীচে বর্ণিত পদ্ধতিটি দেখুন।

পদ্ধতি 2: 'super()' কীওয়ার্ড ব্যবহার করে অন্য ক্লাসে কনস্ট্রাক্টর চেইনিং

আপনি কনস্ট্রাক্টরকে এক ক্লাস থেকে অন্য ক্লাসে চেইন করতে পারেন। এর জন্য, 'super()' কীওয়ার্ড ব্যবহার করা হয়। এটি করতে, প্রধান ক্লাসে নিম্নলিখিত কোডটি ব্যবহার করুন।

প্রথমত, একটি স্ট্রিং টাইপ ভেরিয়েবল সংজ্ঞায়িত করুন “ নাম এবং প্রধান শ্রেণীর নাম ব্যবহার করে প্রথম কনস্ট্রাক্টরকে কল করুন:

স্ট্রিং নাম;
মিনিট ( ) {
এই ( '' ) ;
System.out.println ( 'বেস ক্লাসের কনস্ট্রাক্টর ছাড়া' ) ;
}


দ্বিতীয় কনস্ট্রাক্টরকে আহ্বান করুন এবং উপরে ঘোষিত ভেরিয়েবলটি পাস করুন “ স্ট্রিং নাম প্যারামিটার হিসাবে। ব্যবহার ' এই ' কীওয়ার্ড মান অ্যাক্সেস করতে এবং ' println() 'প্রিন্টিং উদ্দেশ্যে পদ্ধতি:

মিনিট ( স্ট্রিং নাম ) {
this.name = নাম;
System.out.println ( 'বেসের প্যারামিটারাইজড কনস্ট্রাক্টরকে কল করা হচ্ছে' ) ;
}


ভিতরে ' প্রধান() 'পদ্ধতি, প্যারামিটার সহ চাইল্ড ক্লাসকে কল করুন' নাম ” এটি প্যারেন্ট ক্লাস কনস্ট্রাক্টরকে কল করবে যেখানে প্যারামিটার ' নাম ' প্রেরণ করা হয়. তারপর, এটি প্যারামিটার সহ চাইল্ড ক্লাস কনস্ট্রাক্টরকে আহ্বান করবে “ নাম ”:

পাবলিক স্ট্যাটিক অকার্যকর প্রধান ( স্ট্রিং আর্গস [ ] ) {
নতুন শিশু ( 'নাম' ) ;
}


একটি শিশু শ্রেণী তৈরি করা হয় যা ব্যবহার করে ' প্রসারিত ” কীওয়ার্ড প্যারেন্ট ক্লাস ইনহেরিট করতে এবং তৃতীয় কনস্ট্রাক্টরকে আহ্বান করতে। এর পরে পরবর্তী কনস্ট্রাক্টরকে কল করুন এবং এই কনস্ট্রাক্টরের ভিতরে, প্যারেন্ট ক্লাস দ্বিতীয় কনস্ট্রাক্টরকে আহ্বান করুন:

ক্লাস শিশু মিনিমাম প্রসারিত {
শিশু ( ) {
System.out.println ( 'শিশু শ্রেণীর তর্ক ছাড়াই' ) ;
}
শিশু ( স্ট্রিং নাম ) {
সুপার ( নাম ) ;
System.out.println ( 'শিশুর প্যারামিটারাইজড কনস্ট্রাক্টরকে কল করা' ) ;
}
}


আউটপুট


এটি জাভাতে কনস্ট্রাক্টর চেইনিং সম্পর্কে।

উপসংহার

জাভাতে, একই ক্লাসে কনস্ট্রাক্টর চেইনিং করা হয় 'this()' কীওয়ার্ড ব্যবহার করে, যখন 'super()' কীওয়ার্ডটি বিভিন্ন ক্লাসে কনস্ট্রাক্টর চেইনিং করতে ব্যবহৃত হয়। কনস্ট্রাক্টর চেইনিং উত্তরাধিকারের সাহায্যে ঘটে। সাব-ক্লাস কনস্ট্রাক্টর প্রথমে সুপার-ক্লাস কনস্ট্রাক্টরকে কল করে এবং তারপরে, চাইল্ড-ক্লাস কনস্ট্রাক্টরদের আহ্বান করা যেতে পারে। এই পোস্টটি ব্যবহারিক উদাহরণ সহ জাভাতে কনস্ট্রাক্টর চেইনিং নিয়ে আলোচনা করেছে।