জাভা প্রোগ্রামিং ভাষাতে উত্তরাধিকার অন্বেষণ

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

সফ্টওয়্যার বিকাশে উত্তরাধিকারের উদ্দেশ্যটি নিরাপদ এবং নির্ভরযোগ্য সফ্টওয়্যারটির পুনরায় ব্যবহার সহজতর করা। উত্তরাধিকার ব্যবহারের অন্যতম প্রধান সুবিধা হ'ল এটি আপনার প্রোগ্রামগুলিতে রিডানড্যান্ট কোডকে সরিয়ে দেয়।

উত্তরাধিকার কীভাবে কাজ করে

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

উত্তরাধিকার কীভাবে কাজ করে তার একটি প্রকৃত বিশ্বের উদাহরণ ফল বিবেচনা করা। এটি একটি বিস্তৃত লেবেল যা বিভিন্ন আইটেমের ব্যাপ্তি অন্তর্ভুক্ত করতে পরিবেশন করে।

একটি আপেল একটি ফল এবং একটি কমলা হয়। তবে কমলা কোনও অ্যাপল নয়, তাই আপনার যদি কোনও স্টোরের মালিকানা থাকে তবে আপনার স্টক আইটেমগুলির মধ্যে একটি হিসাবে ফল পাবেন না। আপনার ইনভেন্টরিতে সম্ভবত একটি ফলের বিভাগ থাকতে পারে এবং সেই বিভাগের অধীনে আপনার কাছে আরও নির্দিষ্ট আইটেম যেমন আপেল এবং কমলা থাকতে পারে।

উত্তরাধিকার কার্যকরভাবে এইভাবে কাজ করে।

জাভা মধ্যে উত্তরাধিকার ব্যবহার

উত্তরাধিকার যেকোন প্রোগ্রামিং ভাষায় যেতে পারে যা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং প্যারাডিম ব্যবহার করে। তবে উত্তরাধিকার সঠিক পদ্ধতিতে ব্যবহৃত হয় তা নির্দিষ্ট প্রোগ্রামিং ভাষার উপর নির্ভর করে।

উদাহরণস্বরূপ, সি ++ হ'ল একটি অবজেক্ট-ভিত্তিক প্রোগ্রামিং ভাষা । সি ++ একাধিক উত্তরাধিকার হিসাবে পরিচিত যা সমর্থন করে, যখন জাভা কেবল একক উত্তরাধিকারকে সমর্থন করে।

এর অর্থ হ'ল জাভাতে একটি পিতামাতার ক্লাসে অনেকগুলি শিশু ক্লাস থাকতে পারে তবে প্রতিটি শিশু শ্রেণিতে কেবলমাত্র একটি একক পিতাম শ্রেণি (একক উত্তরাধিকার) থাকতে পারে। তবে জাবা-তে পিতামাতা, পিতামাতা এবং সন্তানের সম্পর্ক তৈরি করে পরোক্ষ একাধিক উত্তরাধিকার অর্জনের একটি উপায় রয়েছে।

জাভাতে প্যারেন্ট ক্লাস তৈরি করা

সফ্টওয়্যার প্রয়োজনীয়তার একটি দস্তাবেজ থেকে পিতামাতার শ্রেণি নির্বাচন করার প্রক্রিয়াটি অবজেক্ট-ওরিয়েন্টেড বিশ্লেষণ হিসাবে পরিচিত। এই প্রক্রিয়া চলাকালীন প্রায়শই সম্ভাব্য উত্তরাধিকারের সম্পর্কগুলি চিহ্নিত করতে "একটি ক" শব্দটি ব্যবহৃত হয়। উপরের আমাদের উদাহরণ থেকে আঁকতে আপনার দেখতে পারা উচিত যে ফলটি আমাদের পিতামাতার শ্রেণি হবে।

ফলের অভিভাবক শ্রেণির উদাহরণ

 
public class Fruit {
//Variable Declaration
protected String seed;
protected String skinColor;
protected String taste;
//Default Constructor
public Fruit(){
seed = "";
skinColor ="";
taste ="";
}
//Primary Constructor
public Fruit(String seed, String skinColor, String taste){
this.seed = seed;
this.skinColor = skinColor;
this.taste = taste;
}
//getters and setters
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public String getSkinColor() {
return skinColor;
}
public void setSkinColor(String skinColor) {
this.skinColor = skinColor;
}
public String getTaste() {
return taste;
}
public void setTaste(String taste) {
this.taste = taste;
}
//eat method
public void eat(){
//general code on how to eat a fruit
}
//juice method
public void juice() {
//general code on how to juice a fruit
}
}

উপরের প্যারেন্ট ক্লাসের একটি উল্লেখযোগ্য দিক হ'ল অ্যাক্সেস মডিফায়ার যা প্রতিটি ভেরিয়েবল ঘোষণার সাথে ব্যবহৃত হয় used "সুরক্ষিত" অ্যাক্সেস মডিফায়ারটি পিতামাতাদের ক্লাসে ব্যবহারের জন্য আদর্শ কারণ এটি শিশু-ক্লাসকে পিতাম শ্রেণীর ডেটা বৈশিষ্ট্যগুলিতে অ্যাক্সেস পেতে বাধা দেয়।

আরও কোডে আপনি কন্সট্রাক্টর, গেটার্স এবং সেটারগুলির সাথে পরিচিত হন যা কোনও জাভা শ্রেণীর জন্য সাধারণ বিল্ডিং ব্লক। অবশেষে, আপনি দুটি পদ্ধতির সাথে পরিচিত হন (রস এবং খাওয়া) যা আমাদের প্রোগ্রামের পিতামাতার ক্লাসে তৈরি করা হয় কারণ সেগুলি সব ফলের ক্ষেত্রে সর্বজনীন — সমস্ত ফল খাওয়া এবং রস দেওয়া যায়।

জাভাতে শিশু শ্রেণি তৈরি করা

শিশু ক্লাসগুলিকে সাধারণত বিশেষায়িত বা উদ্ভূত শ্রেণি বলা হয় কারণ তারা পিতামাতার কাছ থেকে রাষ্ট্র এবং আচরণের উত্তরাধিকারী হয় এবং প্রায়শই এই বৈশিষ্ট্যগুলিকে আরও নির্দিষ্ট করে কাস্টমাইজ করে।

আমাদের উদাহরণ দিয়ে চালিয়ে যেতে, আপনার দেখতে হবে যে কমলা কেন উপরের ফল শ্রেণীর উপযুক্ত শিশু শ্রেণি হবে।

কমলা শিশু শ্রেণির উদাহরণ

 
public class Orange extends Fruit{
//variable declaration
private int supremes;
//default constructor
public Orange() {
supremes = 0;
}
//primary constructor
public Orange(String seed, String skinColor, String taste, int supremes){
super(seed, skinColor, taste);
this.supremes = supremes;
}
//getters and setters
public int getsupremes() {
return supremes;
}
public void setsupremes(int supremes) {
this.supremes = supremes;
}
//eat method
public void eat(){
//how to eat an orange
}
//juice method
public void juice() {
//how to juice and orange
}
//peel method
public void peel(){
//how to peel an orange
}
}

নিয়মিত জাভা ক্লাসের ঘোষণাপত্রটি কী দেখায় এবং উপরের কোডে আমাদের কী আছে তার মধ্যে পার্থক্য রয়েছে। "প্রসারিত" কীওয়ার্ডটি জাভাতে উত্তরাধিকারকে সম্ভব করার জন্য ব্যবহৃত হয়।

উপরে আমাদের উদাহরণে শিশু শ্রেণি (কমলা) অভিভাবক শ্রেণি (ফল) প্রসারিত করে। অতএব, ফল শ্রেণীর অবস্থা এবং আচরণ এখন কমলা শ্রেণীর দ্বারা অ্যাক্সেস এবং সংশোধন করা যেতে পারে।

আমাদের কমলা রঙের অনন্য বৈশিষ্ট্যটি পরিবর্তনশীল নাম সুপ্রিমেস (যা কমলাগুলিতে পাওয়া সামান্য অংশগুলির সরকারী নাম) দ্বারা চিহ্নিত করা হয়। এখানেই স্পেশালাইজেশন খেলতে আসে; সমস্ত ফলের সুপরিম থাকে না তবে সমস্ত কমলা থাকে, তাই কমলা শ্রেণীর জন্য সুপরিম পরিবর্তনশীল সংরক্ষণ করা যৌক্তিক।

প্রাক-বিদ্যমান "খাওয়া" এবং "রস" পদ্ধতিগুলিতে "খোসা" পদ্ধতি যুক্ত করাও যুক্তিযুক্ত কারণ যদিও সব ফল ছালানো যায় না, কমলাগুলি প্রায়শই খোসা হয়।

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

ভূমিকা নির্মাতারা উত্তরাধিকারসূত্রে খেলুন

ডিফল্টরূপে, অভিভাবক শ্রেণীর নির্মাতারা শিশু ক্লাস দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয়। অতএব, যদি কোনও শিশু শ্রেণীর অবজেক্ট তৈরি করা হয় তবে এর অর্থ হল পিতামাতা শ্রেণীর অবজেক্টটিও স্বয়ংক্রিয়ভাবে তৈরি হয়ে যায়।

আমাদের উদাহরণে ফিরে যাওয়া, প্রতিটি সময় একটি নতুন কমলা বস্তু তৈরি হওয়ার সময় একটি ফলের বস্তুও তৈরি হয় কারণ কমলা একটি ফল।

পর্দার আড়ালে, যখন কোনও শিশু শ্রেণীর অবজেক্ট তৈরি করা হয়, তখন অভিভাবক শ্রেণীর কনস্ট্রাক্টরকে প্রথমে শিশু শ্রেণীর নির্মাতা বলা হয়। উপরের আমাদের কমলা শিশু শ্রেণিতে, যদি কোনও প্যারামিটার ছাড়াই কোনও কমলা রঙের অবজেক্ট তৈরি করা হয় তবে আমাদের ডিফল্ট ফলের শ্রেণীর কনস্ট্রাক্টর ডেকে আনা হবে, তার পরে আমাদের ডিফল্ট কমলা শ্রেণির ঠিকাদার হবে।

উপরের আমাদের প্রাথমিক কনস্ট্রাক্টরের "সুপার" পদ্ধতিটি প্রয়োজনীয় কারণ এটি নির্দিষ্ট করে যে প্যারামিটারগুলির সাথে কমলা রঙের কোনও বস্তু তৈরি হলে পিতামাতার ফলের শ্রেণীর প্রাথমিক কন্সট্রাক্টর — এবং ডিফল্ট কনস্ট্রাক্টর নয় called

এখন আপনি জাভাতে উত্তরাধিকার ব্যবহার করতে পারেন

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

চিত্রের ক্রেডিট: আন্দ্রেয়াস ওলফাহাহার্ট / পেক্সেল