অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং

ক্লাস
- class কিওয়ার্ড দিয়ে শুরু করতে হবে ।
- ক্লসের মুল উদ্দেশ্য হল রিলেটেড/একই টাইপের মেথড এবং প্রপার্টিকে একসাথে রাখা
উদাহরন — সাইন্স এবং কমার্স দুইটা ক্লাস । সাইন্স ক্লাসে খারাপ, ভাল, বিড়ি খোর, ব্রিলিয়ান্ট অনেক ধরণের ছাত্র থাকলেও তাদের মুল বৈশিষ্ট্য হল সবাই সাইন্স ক্লাসের ছাত্র । কমার্স ক্লাসের জন্যও একই উদাহরণ ।
অবজেক্ট
- অবজেক্ট হল ক্লাসের ইন্সট্যান্স ।
- ক্লাসের অবজেক্ট তৈরি করে তার কোন প্রপার্টি বা মেথডের একসেস পাওয়া যায় ।
প্রপার্টি
- ক্লাসের মধ্যের ভ্যারিয়েবলকে প্রপার্টি বলা হয় ।
মেথড
- ক্লাসের মধ্যের ফাংশনকে মেথড বলা হয় ।
চাইল্ড ক্লাস
- মুল ক্লাসের বর্ধিত ক্লাস যা মুল ক্লাসের সব বৈশিষ্ট্য বহন করে ।
- extends কিওয়ার্ড দিয়ে চাইল্ড ক্লাস তৈরি করা হয় ।
একসেস মডিফায়ার ( পাবলিক, প্রটেকটেড, প্রাইভেট )
- পাবলিক — ক্লাসের ভিতরে এবং বাইরে যে কোন জায়গা থেকে ক্লাসের এলিমেন্ট গুলার একসেস পাওয়া যাবে
- প্রটেকটেড — চাইল্ড কাস থেকে প্যারেন্ট ক্লাসের এলিমেন্ট গুলার একসেস পাওয়া যাবে
- প্রাইভেট — শুধু মাত্র প্যারেন্ট ক্লাসের মধ্যেই এলিমেন্ট গুলার একসেস থাকবে । বাইরে থেকে কোথাও এলিমেন্ট গুলা ব্যাবহার করা যাবে না ।
ঊদাহরন — আপনার বাবা যে বাজার করতেসে সেটা বাসার সবার জন্য ( আপনি, চাচা, মামা, কাজের লোক ) । সবাই এই বাজার খেতে পারবে । বাজার পাবলিক । আপনার বাবার সম্পত্তি কিন্তু সবাই পাবে না । তার সন্তান হওয়ায় শুধু আপনি সেই সম্পত্তি পাবেন । সম্পত্তি প্রটেকটেড । আপনার বাবা যে আন্ডারওয়্যার পরেন সেটা কিন্তু বাসার কেউ ব্যাবহার করতে পারবে না । এমনকি আপনি তার সন্তান হয়েও পারবেন না । আন্ডারওয়্যার প্রাইভেট ।
ইনহেরিটেন্স
- চাইল্ড ক্লাস প্যারেন্ট ক্লাসের সকল বৈশিষ্ট্য বহন করার প্রক্রিয়াটিকে ইনহেরিটেন্স বলা হয় ।
এনক্যাপসুলেশন
- স্ক্রিপ্টের এক একটা অংশকে এমন ভাবে রাখা হয় যেন একটা অংশ অন্য আরেকটি দ্বারা প্রভাবিত না হতে পারে ।
পলিমরফিজম
- পলি ( অনেক ) মরফিজম( ফর্ম ) অর্থাৎ একই জিনিসের অনেক গুলা রুপ ।
- একই নামের ফাংশন ভিন্ন ভিন্ন কাজ করবে তাদের প্যারামিটার এর উপর নির্ভর করে ।
বিঃ দ্রঃ ইনহেরিটেন্স , এনক্যাপসুলেশন এবং পলিমরফিজম এগুলো অবজেক্ট ওরিয়েন্টেডের বেসিক তিনটি বিষয় ।
কন্সট্রাক্টর
- একটি বিশেষ মেথড যা ক্লাসকে instantiation করার সময় অর্থাৎ অবজেক্ট তৈরি করার সময় অটোমেটিক এক্সিকিউট হবে । অন্যান্য মেথডের মত একে কল করার দরকার নাই ।
স্ট্যাটিক মেথড এবং প্রোপার্টি
- মেথড বা প্রোপার্টির আগে static কিওয়ার্ড দিয়ে শুরু করতে হবে ।
- স্ট্যাটিক মেথড বা প্রোপার্টিতে একসেস করার জন্য কোন অবজেক্ট তৈরি করার দরকার হয় না ।
- ক্লাসের নামের পাশে স্কোপ রেজুলেশন অপারেটর ( : : ) ব্যবহার করে যে কোন জায়গা থেকে এর একসেস পাওয়া যাবে । যেমনঃ PlayerClass: :playerName
- ক্লাসের মধ্যে স্ট্যাটিক মেথড বা প্রোপার্টি একসেস করার জন্য self: : ব্যবহার করতে হবে ।
মেথড ওভাররাইডিং
- প্যারেন্ট ক্লাসের কোন মেথডকে চাইল্ড ক্লাসে মডিফাই করা ।
- প্যারেন্ট ও চাইল্ড ক্লাসে মেথডের প্যারামিটার একই থাকবে ।
মেথড ওভারলোডিং
- ক্লাসের মধ্যে একই নামের একাধিক মেথড থাকবে
- মেথডের প্যারামিটার গুলো ভিন্ন ভিন্ন হবে ।
ইন্টারফেস ক্লাস
- Class এর বদলে Interface লিখতে হবে ।
- ইন্টারফেস ক্লাস কে সরাসরি instantiate করা যায় না অর্থাৎ অবজেক্ট তৈরি করা যায় না ।
- ক্লাসের মধ্যে শুধু মেথড গুলার নাম লেখা থাকবে ।
- ক্লাসের মেথড বডিতে কিছু থাকবে না ।
- চাইল্ড ক্লাসের মেথড বডিতে প্যারেন্ট ক্লাসের মেথড ওভাররাইড করা হবে ।
- চাইল্ড ক্লাসে Extends এর বদলে Implements লিখতে হবে ।
- মাল্টিপল ক্লাস কে একসাথে ইমপ্লিমেন্ট করা যায় ।
এবস্ট্রাক্ট ক্লাস
- ইন্টারফেস ক্লাসের মত এবস্ট্রাক্ট ক্লাসকেও সরাসরি instantiate করা যায় না অর্থাৎ অবজেক্ট তৈরি করা যায় না।
- ক্লাসের আগে abstract লিখতে হবে ।
- চাইল্ড ক্লাস কে instantiate করা যায় ।
- ক্লাসের মেথড বডিতে কিছু থাকতে পারে আবার নাও থাকতে পারে ।
নেমস্পেস
- নেমস্পেস মুলত ব্যবহার করা হয় কোড কনফ্লিক্ট সমস্যা সমাধানের জন্য।
- এর মাধ্যমে একটা কোডব্লক কে একটা নাম দেওয়া যায় । সেই নামের মাধ্যমে কোড ব্যবহার করা যায় । এতে সুবিধা হল পরবর্তীতে স্ক্রিপ্টের অন্য কোন কোডে যদি একই নামের ফাংশন থাকে তবে তাদের মধ্যে কোন কনফ্লিক্ট হবে না ।