আমি ওওপিতে 'বিমূর্ত' সংজ্ঞাটি বোঝার চেষ্টা করছি।
আমি কয়েকটি মূল সংজ্ঞা জুড়ে এসেছি। তারা সব বৈধ? তাদের মধ্যে একটি ভুল? আমি বিভ্রান্ত (আমি নিজের শব্দ দিয়ে সংজ্ঞাটি আবার লিখেছি)।
সংজ্ঞা 1:
অ্যাবস্ট্রাকশন হ'ল বাস্তব জগতের কিছু বস্তু গ্রহণ এবং এটিকে প্রোগ্রামিংয়ের পদগুলিতে রূপান্তর করার ধারণা। যেমন একটি Human
ক্লাস তৈরি করা এবং এটি দেওয়াint health
, int age
, String name
, ইত্যাদি বৈশিষ্ট্য, এবং eat()
ইত্যাদি পদ্ধতি।
সংজ্ঞা 2:
আরও সাধারণ সংজ্ঞা। অ্যাবস্ট্রাকশন এমন একটি ধারণা যা কোনও সফ্টওয়্যার সিস্টেমে যেখানেই ঘটে থাকে যেখানে 'জিনিসগুলিকে আরও সাধারণ / সরল / বিমূর্ত করা' জড়িত। কয়েকটি উদাহরণ:
উত্তরাধিকারের শ্রেণিবিন্যাস, যেখানে উচ্চতর শ্রেণিগুলি সহজ বা আরও সাধারণ এবং আরও সাধারণ এবং বিমূর্ত বাস্তবায়ন সংজ্ঞায়িত করে। যদিও শ্রেণিবদ্ধের নিম্ন শ্রেণিগুলি আরও কংক্রিট এবং আরও বিস্তারিত বাস্তবায়ন সংজ্ঞায়িত করে।
অন্য শ্রেণি থেকে কোনও শ্রেণীর প্রয়োগের বিবরণ গোপন করতে এনক্যাপসুলেশন ব্যবহার করে, ক্লাসটি বাইরের সফ্টওয়্যার বিশ্বে আরও 'বিমূর্ত' (সরল) করে তোলে।
সংজ্ঞা 3
আর একটি সাধারণ সংজ্ঞা: বিমূর্তি হ'ল বিষয়গুলির বিবরণ এবং কংক্রিট বাস্তবায়ন থেকে বিষয়গুলির (যেমন শ্রেণিগুলি), উপলব্ধ ক্রিয়াকলাপগুলি (যেমন পদ্ধতি) ইত্যাদির দিকে ফোকাস সরিয়ে নিয়ে যাওয়া, এইভাবে প্রোগ্রামিংটিকে আরও সাধারণ, আরও সাধারণ, এবং আরও বিমূর্ত। (এটি সফ্টওয়্যার সিস্টেমের যে কোনও জায়গায় এবং যে কোনও প্রসঙ্গে স্থান নিতে পারে)। এটি উদাহরণস্বরূপ এনক্যাপসুলেটিং করার সময় ঘটে থাকে, কারণ এনক্যাপসুলেশন বলতে বাস্তবায়নের বিশদটি গোপন করে এবং কেবল জিনিসগুলির ধরণ এবং তাদের আরও সাধারণ এবং বিমূর্ত সংজ্ঞা প্রদর্শন করে। Anotehr উদাহরণ List
জাভাতে একটি অবজেক্ট ব্যবহার করা হবে । এই অবজেক্টটি আসলে একটি ArrayList
বা ক এর বাস্তবায়ন বিশদ LinkedList
ব্যবহার করে তবে আরও সাধারণ নাম ব্যবহার করে এই তথ্য বিমূর্ত করা হয়List
।
এই সংজ্ঞাগুলির কোনটিই সঠিক? (আমি সর্বাধিক প্রচলিত এবং স্বীকৃত সংজ্ঞাটি উল্লেখ করছি )।