ওয়েব অ্যাপস

নতুনদের জন্য OOP ধারণা: বিমূর্ততা কি?

30 অক্টোবর, 2021

মধ্যে একটি মূল ধারণা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) হল বিমূর্ততা। এবং এটি সবচেয়ে বিভ্রান্তিকর এক.

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং-এ অ্যাবস্ট্রাকশন বলতে বোঝায় কোনো কিছুর শুধুমাত্র প্রয়োজনীয় গুণাবলী দেখানো এবং ব্যবহারকারীর কাছে অপ্রয়োজনীয় কোনো বাস্তবায়ন তথ্য লুকিয়ে রাখা।

এটি ব্যবহারকারীদের গোপন যুক্তি দ্বারা অভিভূত না হতে দেয় যা ব্যবহারকারীদের জটিল যুক্তি তৈরি করে। এইভাবে, OOPs লুকানো যুক্তিকে বিমূর্ত করে যাতে ব্যবহারকারীর বুঝতে বা এটি সম্পর্কে চিন্তা করার প্রয়োজন হয় না।

কিন্তু প্রথমে, আসুন আমরা আপনাকে OOP-এর একটি ওভারভিউ দিই।

সুচিপত্র

OOP কি?

OOP বা অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং হল এক ধরনের প্রোগ্রামিং যা প্রোগ্রামিং প্যারাডাইমের মৌলিক।

এটি সবচেয়ে জনপ্রিয় প্রোগ্রামিং পদ্ধতি যা অনেক প্রোগ্রামার তাদের শিক্ষাজীবনের সময় অভিযোজিত করে।

পদ্ধতিগত প্রোগ্রামিংয়ের বিপরীতে, অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের বিভিন্ন সুবিধা রয়েছে:

  • OOPs রাখা জাভা কোড DRY, অর্থাৎ, রক্ষণাবেক্ষণ, পরিবর্তন এবং ডিবাগের জন্য কোডটিকে সহজ করে, নিজেকে পুনরাবৃত্তি করবেন না। এর মানে হল একজন প্রোগ্রামার সাধারণ কোড বের করে একটি একক জায়গায় রেখে কোডের পুনরাবৃত্তি কমাতে পারে।
  • এটি দ্রুততর এবং পদ্ধতিগত প্রোগ্রামিংয়ের চেয়ে সহজে কার্যকর করা হয়।
  • আপনি OOPs-এর সাহায্যে কম কোড সম্বলিত একটি সংক্ষিপ্ত বিকাশের সময়ে পুনরায় ব্যবহারযোগ্য অ্যাপ্লিকেশনগুলি বিকাশ করতে পারেন।
  • এটি একটি পরিষ্কার প্রোগ্রাম কাঠামো দেয়।

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের দুটি মৌলিক বিষয় রয়েছে: ক্লাস এবং অবজেক্ট।

    ক্লাস -এটি বস্তুর জন্য একটি টেমপ্লেট বা নির্দিষ্ট বস্তু তৈরি করার জন্য একটি ব্লুপ্রিন্ট। উদাহরণস্বরূপ, কুকুরের মতো একটি বিস্তৃত বিভাগ হল এমন একটি শ্রেণী যা রঙ, জাত, নাম, ইত্যাদির মতো বৈশিষ্ট্যকে সংজ্ঞায়িত করে, যেটি ক্লাসের বস্তু বা উদাহরণ।বস্তু-অবজেক্ট হল ক্লাস ইনস্ট্যান্স যা একটি ক্লাস থেকে সমস্ত ভেরিয়েবল এবং পদ্ধতির উত্তরাধিকারী হয়। উদাহরণস্বরূপ, একটি শ্রেণী – কুকুরের কাছে ডালমেশিয়ান, জার্মান শেফার্ড, সেন্ট বার্নার্ড, গোল্ডেন রিট্রিভার ইত্যাদির মতো বস্তু রয়েছে।

OOP-এর চারটি স্তম্ভ রয়েছে - উত্তরাধিকার, বিমূর্ততা, এনক্যাপসুলেশন এবং পলিমরফিজম।

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

এই নিবন্ধটি শুধুমাত্র একটি OOPs ধারণার উপর দৃষ্টি নিবদ্ধ করে - বিমূর্ততা।

OOP তে একটি বিমূর্ততা কি?

OOPs-এ, বিমূর্ততা হল সবচেয়ে গুরুত্বপূর্ণ ধারণাগুলির মধ্যে একটি যা প্রোগ্রামারদের শুধুমাত্র বিবেচনাধীন সিস্টেমের জন্য গুরুত্বপূর্ণ দিকগুলিতে ফোকাস করতে দেয়।

বিমূর্ততা প্রোগ্রামারকে প্রোগ্রামিংকে সহজতর করার জন্য ক্লাস, উপলব্ধ পদ্ধতি ইত্যাদির দিকে কর্মের বাস্তবায়নের বিবরণ থেকে তাদের ফোকাস স্থানান্তর করতে দেয়।

আরো দেখুন কম্পিউটার ভাইরাস পরিত্রাণ পেতে 2 সেরা উপায়

আমরা উত্তরাধিকার এবং encapsulation উদাহরণ ব্যবহার করে বিমূর্ততা বুঝতে পারি:

একটি উত্তরাধিকার অনুক্রমের মধ্যে, অভিভাবক শ্রেণী বা উচ্চ শ্রেণীতে সহজ এবং সাধারণ বাস্তবায়ন থাকে, কিন্তু শিশু শ্রেণী বা নিম্ন শ্রেণীতে উচ্চ শ্রেণীর আরো বিস্তারিত বাস্তবায়ন থাকে। এটি একটি বিমূর্ততা।

যখন একজন প্রোগ্রামার এনক্যাপসুলেশনে অন্য ক্লাস থেকে একটি ক্লাসের বাস্তবায়নের বিবরণ লুকিয়ে রাখে, তখন ক্লাসটি সহজ হয়।

উদাহরণ

উদাহরণ ছাড়া কিছুই ভালোভাবে বোঝা যায় না। উদাহরণগুলি একটি ব্যবহারিক পদ্ধতি প্রদান করে যা যেকেউ কি বিষয়ে কথা বলছে তা আরও ভালভাবে বুঝতে দেয়।

বিমূর্ততা বোঝার জন্য কিছু বাস্তব-জগতের উদাহরণ বিবেচনা করা যাক।

1. কফি মেশিন

একদিনে বিশ্বব্যাপী 1.4 বিলিয়ন কাপের বেশি কফি ঢালা হয় এবং এর প্রায় 45% আসে মার্কিন যুক্তরাষ্ট্র থেকে। সুতরাং, আমরা বলতে পারি যে কফি এই বিশ্বের সবচেয়ে প্রিয় পানীয়গুলির মধ্যে একটি।

কফি হাউসগুলি একটি কফি মেশিনের সাহায্যে কফি তৈরি করে তাতে জল এবং কফির বীজ ঢুকিয়ে৷ তারা মেশিনটি চালু করে এবং তারপরে প্রয়োজনীয় ধরণের কফি নির্বাচন করে, তারপরে মেশিনটি আপনার জন্য সবচেয়ে সুস্বাদু কফি তৈরি করে।

কিন্তু আপনি কি কখনও থামেন এবং খুঁজে পেয়েছেন কিভাবে মেশিন কফি brews. এটি ব্যবহার করে আদর্শ তাপমাত্রা কি? কফি যে পরিমাণ এটি রাখে?

কোন অধিকার নাই?

এইভাবে, কফি মেশিন তার অভ্যন্তরীণ কার্যকারিতা বিমূর্ত করে এবং আপনাকে আপনার কাপ কফি তৈরি করতে এবং এটি উপভোগ করতে দেয়।

একই ধারণাটি জাভার মতো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজগুলিতে ব্যবহৃত হয়। সিস্টেমের অভ্যন্তরীণ কার্যকারিতা প্রোগ্রামার থেকে বিমূর্ত করা হয় যাতে তারা প্রোগ্রামিং উপভোগ করতে পারে।

2. গাড়ি

একটি গাড়ি বিমূর্ততার আরেকটি বাস্তব-জগতের উদাহরণ।

ইঞ্জিন, ব্যাটারি, রেডিয়েটর, সামনে এবং পিছনের এক্সেল, ট্রান্সমিশন সিস্টেম, স্টিয়ারিং সিস্টেম, সাসপেনশন সিস্টেম, বৈদ্যুতিক সিস্টেম এবং আরও অনেক কিছুর মতো বিভিন্ন আইটেম দিয়ে তৈরি একটি জটিল সিস্টেম।

তবে গাড়ি চালানোর জন্য এসব যন্ত্রাংশ সম্পর্কে সব জানার প্রয়োজন নেই।

গাড়ি ব্যবহার করা ইগনিশনে চাবি ঘোরানো বা স্টার্ট বোতাম টিপে এবং তারপরে গাড়ি চালানোর মতোই সহজ।

গাড়ির ইঞ্জিন কীভাবে শুরু হয়, জ্বালানি ব্যবস্থা, বৈদ্যুতিক ব্যবস্থা ইত্যাদি বোঝার কোনো প্রয়োজন নেই। আপনি আপনার গাড়ি স্টার্ট করে দূরে চলে যেতে পারেন।

3. মাইক্রোওয়েভ

একটি মাইক্রোওয়েভ ভিতরে একটি জটিল মেশিন কিন্তু একটি মোটামুটি সহজ এবং ব্যবহার করা সহজ ইন্টারফেস আছে.

টাচ প্যানেল বা বোতামগুলি হল যা আমরা আমাদের খাবার রান্না করতে, পুনরায় গরম করতে, বেক করতে, গরম করতে এবং গ্রিল করতে যোগাযোগ করি।

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

খাবার কীভাবে রান্না করা হচ্ছে, মাইক্রোওয়েভ কীভাবে কাজ করে, তাপমাত্রার সেটিংস কীভাবে কাজ করে ইত্যাদি বোঝার দরকার নেই।

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

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

এখন আসুন একটি প্রযুক্তিগত উদাহরণের সাহায্যে OOP বুঝি।

4. পাসপোর্ট আবেদন

একটি পাসপোর্ট অ্যাপ্লিকেশন তৈরি করার সময়, আপনাকে ডেটাবেস থেকে একজন গ্রাহক সম্পর্কে ডেটা অ্যাক্সেস করতে হবে, যাতে বিভিন্ন গ্রাহকের সাথে সম্পর্কিত বিভিন্ন ধরণের বিবরণ থাকে।

আরো দেখুন 26 সেরা ফ্রি অডিও রেকর্ডিং সফটওয়্যার

গ্রাহক টেবিলের রেকর্ডে নিম্নলিখিত কলামগুলিতে গ্রাহকদের সাথে সম্পর্কিত তথ্য রয়েছে:

  • নামের প্রথম অংশ
  • নামের শেষাংশ
  • ঠিকানা
  • যোগাযোগের নম্বর
  • প্রিয় খাবার
  • শখ
  • প্রিয় সিনেমা
  • প্রিয় গান
  • মার্কিন নাগরিকত্বের প্রমাণ
  • সরকার কর্তৃক জারি করা ফটো আইডি

যাইহোক, এই কলামগুলিতে থাকা সমস্ত তথ্য পাসপোর্ট পাওয়ার জন্য প্রাসঙ্গিক নয়।

পাসপোর্টের জন্য আবেদন করার সময় প্রিয় খাবার, শখ, প্রিয় গান এবং প্রিয় সিনেমা সম্পর্কিত রেকর্ডের প্রয়োজন নেই।

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

এই তথ্যটি ব্যাঙ্কিং অ্যাপ্লিকেশন, হাসপাতালের অ্যাপ্লিকেশন, সরকারী ডাটাবেস, পোর্টাল তথ্য ইত্যাদির মতো অন্যান্য ব্যবহারের জন্য ব্যবহার করা যেতে পারে, খুব বেশি পরিবর্তন ছাড়াই।

এটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) এ অ্যাবস্ট্রাকশনের একটি সুবিধা।

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

জাভাতে বিমূর্ততা

জাভাতে, ইন্টারফেস এবং বিমূর্ত ক্লাসের সাহায্যে বিমূর্ততা অর্জন করা যেতে পারে।

1. ইন্টারফেস

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

উদাহরণস্বরূপ, একটি ইন্টারফেস ফান-এ নিম্নলিখিতগুলি রয়েছে:

|_+_|

ক্লাস ফান ইমপ্লিমেন্টিং ইন্টারফেস ফান অবশ্যই প্লে() বাস্তবায়ন করবে।

জাভাতে, ইন্টারফেস কীওয়ার্ডের সাহায্যে ইন্টারফেস ঘোষণা করা হয় এবং সম্পূর্ণ বিমূর্ততা প্রদান করতে ব্যবহৃত হয়।

এইভাবে, সমস্ত ইন্টারফেস পদ্ধতি সর্বজনীন এবং ডিফল্টরূপে সমস্ত ক্ষেত্র সর্বজনীন, স্থির এবং চূড়ান্ত সহ একটি খালি বডি রয়েছে।

ইন্টারফেসের সিনট্যাক্স:

|_+_|

একটি ক্লাস একটি ইন্টারফেস বাস্তবায়ন করতে পারে এবং ইমপ্লিমেন্টস কীওয়ার্ড ব্যবহার করে বাস্তবায়ন করা যেতে পারে। এই ক্লাসটি অবশ্যই সমস্ত পদ্ধতি বাস্তবায়ন করবে এবং ইন্টারফেসে ঘোষিত সমস্ত ভেরিয়েবল ধারণ করবে যা এটি বাস্তবায়ন করছে।

গুরুত্ব

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

জাভা 8-এ একটি আপডেট হিসাবে, ইন্টারফেসে ডিফল্ট এবং স্ট্যাটিক পদ্ধতি যুক্ত করা হয়েছিল এবং জাভা 9-এর অংশ হিসাবে, ইন্টারফেসে ব্যক্তিগত পদ্ধতি যুক্ত করা হয়েছিল।

2. বিমূর্ত ক্লাস

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এর অংশ হিসাবে বিমূর্ততা প্রদান করতে ব্যবহৃত জাভা-এর একটি কীওয়ার্ড। এটি একটি নন-অ্যাক্সেস মডিফায়ার।

বিমূর্ত শ্রেণী - একটি শ্রেণী যা আংশিকভাবে জাভাতে বিমূর্ততা প্রয়োগ করে। এখানে, আংশিক বিমূর্ততা মানে ইন্টারফেসের বিপরীতে, সমস্ত পদ্ধতির একটি বিমূর্ত শ্রেণীতে পদ্ধতির সংজ্ঞা থাকে না।

অ্যাবস্ট্রাক্ট ক্লাস অবজেক্ট ইনস্ট্যান্ট করা যায় না, এবং এইভাবে যে কোনও সাবক্লাস যেটি একটি অ্যাবস্ট্রাক্ট ক্লাস প্রয়োগ করে তার সমস্ত পদ্ধতি প্রয়োগ করতে হবে, বা সাবক্লাসকে অবশ্যই একটি বিমূর্ত শ্রেণী হিসাবে ঘোষণা করতে হবে।

বিমূর্ত শ্রেণীর জন্য সিনট্যাক্স হল:

|_+_|

বিমূর্ত পদ্ধতি - এমন পদ্ধতি যা শুধুমাত্র সংজ্ঞা আছে কিন্তু কোন বাস্তবায়ন নেই। তারা একটি বিমূর্ত টাইপ সংশোধক ব্যবহার করে একটি বিমূর্ত শ্রেণীতে ঘোষণা করা হয়.

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

একটি বিমূর্ত পদ্ধতির জন্য সিনট্যাক্স হল:

বিমূর্ত রিটার্ন_টাইপ (প্যারামিটার_তালিকা);

বিমূর্ত পদ্ধতি সম্পর্কিত কয়েকটি নিয়ম রয়েছে:

একটি বিমূর্ত পদ্ধতি শুধুমাত্র একটি বিমূর্ত শ্রেণীর মধ্যে ঘোষণা করা যেতে পারে। সুতরাং, এক বা একাধিক বিমূর্ত পদ্ধতি সম্বলিত যেকোন শ্রেণিকে অবশ্যই বিমূর্ত ঘোষণা করতে হবে।

আরো দেখুন স্টার্টআপে খোলা থেকে অ্যাভাস্ট ব্রাউজার বন্ধ করার 5টি সমাধান

অন্যান্য সংশোধক এবং বিমূর্ত পরিবর্তনকারীর মধ্যে কয়েকটি অবৈধ সমন্বয় রয়েছে যা স্বীকার করা উচিত -

  • বিমূর্ত নেটিভ
  • বিমূর্ত strictfp
  • বিমূর্ত স্থির
  • বিমূর্ত সিঙ্ক্রোনাইজড
  • ফাইনাল
  • বিমূর্ত ব্যক্তিগত

এখন, প্রশ্ন জাগে, যদি আমাদের ইন্টারফেস থাকে তবে আমরা কখন বিমূর্ত পদ্ধতি এবং ক্লাস ব্যবহার করব?

যখন দুই বা ততোধিক সাবক্লাসে একই জিনিস একই রকমের কোড থাকে কিন্তু তা ভিন্নভাবে প্রয়োগ করা হয়, তখন বিমূর্ত পদ্ধতি ঘোষণা করা হয়।

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

পার্থক্য

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

1. বিমূর্ততা এবং এনক্যাপসুলেশন

বিমূর্ততা এবং এনক্যাপসুলেশন হল OOP-এর চারটি স্তম্ভের অংশ - উত্তরাধিকার, এনক্যাপসুলেশন, পলিমরফিজম এবং বিমূর্ততা।

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

আসুন আরও ভালভাবে বোঝার জন্য পার্থক্যটি পরীক্ষা করে দেখুন।

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

2. বিমূর্ত ক্লাস এবং ইন্টারফেস

জাভাতে, বিমূর্ত শ্রেণী এবং ইন্টারফেস উভয় দ্বারা বিমূর্ততা অর্জন করা যেতে পারে।

ইন্টারফেসগুলি 100% বিমূর্তকরণের অনুমতি দেয়, এবং বিমূর্ত শ্রেণী শুধুমাত্র আংশিক বিমূর্তকরণের অনুমতি দেয়, তবে এই ধরনেরগুলির সুবিধা এবং অসুবিধা রয়েছে।

বিমূর্ততা সঞ্চালনের জন্য আমরা জাভাতে তাদের উভয়ের প্রয়োজন। আসুন আমরা বুঝতে পারি যে তারা কীভাবে একে অপরের থেকে আলাদা।

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

বিমূর্তকরণের সুবিধা

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং-এ, বিমূর্ততা একজন প্রোগ্রামারকে ডিজাইন এবং সফ্টওয়্যার প্রক্রিয়া বাস্তবায়ন জটিলতা কমাতে দেয়।

বেশ কিছু সম্পর্কিত জাভাতে বিমূর্ততা ব্যবহার করে ক্লাসগুলি ভাইবোন হিসাবে গোষ্ঠীভুক্ত করা যেতে পারে প্রোগ্রামিং

বিমূর্ততা একজন প্রোগ্রামারকে একটি প্রোগ্রামে কোডের নকল এড়াতে এবং পুনরায় ব্যবহারযোগ্যতা বাড়াতে অনুমতি দেয়।

বিমূর্ততার সাথে, একটি অ্যাপ্লিকেশন বা প্রোগ্রামের নিরাপত্তা বৃদ্ধি করা হয় কারণ প্রোগ্রামারদের শুধুমাত্র তাদের জন্য গুরুত্বপূর্ণ বিশদগুলিতে অ্যাক্সেসের অনুমতি দেওয়া হয়।

সারসংক্ষেপ

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

এটি গুরুত্বপূর্ণ যে একজন প্রোগ্রামার হিসাবে, আপনি বিমূর্ততা এবং কীভাবে এটি অর্জন করবেন তা বোঝেন এবং আমরা আশা করি এই নিবন্ধটি আপনার জন্য সহায়ক হয়েছে।

প্রায়শই জিজ্ঞাসিত প্রশ্ন (FAQs)

বিমূর্ততা এবং encapsulation কি?

বিমূর্ততা - এটি একটি মৌলিক OOPs ধারণা যা বোঝায় যে ব্যবহারকারীকে শুধুমাত্র সেই বিবরণগুলি দেখানো হয় যা তাদের কাছে গুরুত্বপূর্ণ, এবং অন্যান্য সমস্ত অপ্রয়োজনীয় বিবরণ নিরাপদে লুকিয়ে রাখা হয়।
এনক্যাপসুলেশন - এটি একটি মৌলিক OOPs ধারণাও। এনক্যাপসুলেশন মানে ডেটা এবং কোডকে একটি একক সত্তায় একত্রে আবদ্ধ করা যাতে বিশদগুলি বাইরের বিশ্ব থেকে সুরক্ষিত করা যায়।

বিমূর্ততা কি?

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

বিমূর্ততার কিছু বাস্তব জীবনের উদাহরণ দাও?

কিছু বাস্তব জীবনের বিমূর্ত উদাহরণ হল এটিএম (আমরা যা করি তা হল কিছু বোতামে ক্লিক করা এবং নগদ প্রবাহ), মাইক্রোওয়েভ, গাড়ি ইত্যাদি।

প্রোগ্রামিং এ বিমূর্ততা একটি উদাহরণ কি?

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

OOP এর 4 টি মৌলিক বিষয় কি কি?

OOP-এর চারটি মৌলিক বিষয় হল উত্তরাধিকার, এনক্যাপসুলেশন, পলিমরফিজম এবং অ্যাবস্ট্রাকশন।