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

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

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





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





কিভাবে একটি ছবি স্বচ্ছ করা যায়

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

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





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

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



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

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

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





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

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





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

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

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


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
}
}

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

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

জাভাতে চাইল্ড ক্লাস তৈরি করা

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

আমাদের উদাহরণের সাথে অব্যাহত, আপনি দেখতে পাবেন কেন কমলা উপরের ফল শ্রেণীর একটি উপযুক্ত শিশু শ্রেণী হবে।

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


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
}
}

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

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

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

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

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

ভূমিকা কনস্ট্রাক্টররা উত্তরাধিকারের ভূমিকা পালন করে

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

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

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

উপরের আমাদের প্রাথমিক কন্সট্রাক্টর -এ সুপার মেথড প্রয়োজন কারণ এটি নির্দিষ্ট করে যে প্যারামেন্ট ফলের ক্লাসের প্রাথমিক কনস্ট্রাক্টর — এবং ডিফল্ট কনস্ট্রাক্টর নয় whenever যখনই প্যারামিটার সহ কমলা বস্তু তৈরি হবে তখনই বলা উচিত।

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

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

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

শেয়ার করুন শেয়ার করুন টুইট ইমেইল উত্তরাধিকার সহ আপনার অবজেক্ট-ওরিয়েন্টেড কোড কীভাবে সংগঠিত করবেন

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

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • প্রোগ্রামিং
  • জাভা
  • অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
লেখক সম্পর্কে কাদিশা কেন(21 নিবন্ধ প্রকাশিত)

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

Kadeisha Kean থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন