Menu

Abdul Ahad

servant of the only One!
Sat, 03 October 2015

OOP Concept

প্রোগ্রামিং জীবনের সবচেয়ে বড় অধ্যায়। বর্তমান সময়ে সকল সফটওয়্যার ই Object Oriented । কাজেই এইযুগে procedural প্রোগ্রামিং এর ভাত নাই বললে চলে। আপনি যখন প্রোগ্রামিং শিখেন তখন আপনি Procedure নিয়মে শিখে থাকেন, শিখে থাকেন কি করে প্রোগ্রাম কাজ করে, প্রোগ্রামিং এর বেসিক জিনিষপত্র। একজন সাধারণ এবং প্রোফেশনাল সফটওয়্যার ডেভেলপার এর মধ্যে পার্থক্যকারী হলো Object Orientation. একজন সাধারণ ডেভেলপার শুধু জানেন কি করে কিছু কোড লিখতে হয়, কি করে সফটওয়্যার বানাতে হয়। অন্যদিকে একজন প্রোফেশনাল ডেভেলপার জানেন কি করে কোড লিখলে প্রোগ্রাম দ্রুত রান করবে, কি করে কোড Organize করলে ভবিষ্যতে ওই প্রোগ্রামে সহজে নতুন ফিউচার যোগ করা যায়, Bug সমাধান করা সহজ হয় ইত্যাদি। আর এই বিষয়গুলো জানা যায় Object Oriented Programming থেকে।

Object Oriented Programming হল কিছু কৌশল, ধারণা এবং প্রোফেশনাল Vocabulary এর সমষ্টি।

এই পোষ্টে আমরা Object Oriented Programming এর কিছু বেসিক ধারণা নিব। আশা করি এই পোষ্টা মনোযোগ সহকারে পড়লে আপনি OOP প্রোগ্রামিং এর নতুন অর্থ খুঁজে পাবেন এবং আপনার বেসিকটা ক্লিয়ার হবে।

Object

প্রথমেই Object কি? Object কি জানতে হলে আগে জানতে হবে, আমরা বাস্তব জীবনে object বলতে কি বুঝি। আমাদের চারপাশের সবকিছুই object, এমনকি আমরাও। একটা object এর তিনটা বৈশিষ্ট্য থাকে যথাক্রমে Identity, Property এবং Behaviors। উদাহরণস্বরূপ বলা যায় একটা মোবাইল ফোন। একটা মোবাইলে ফোন অবশ্যই অন্য একটা মোবাইলে থেকে আলাদা, সতন্ত্র । একটা মোবাইল ফোন এর অনেক Property বা বৈশিষ্ট্য থাকে যেমন এর রং কালো, ডিসপ্লে ৫ ইঞ্চি, ওজন ১৫০ গ্রাম প্রভৃতি হল কোন একটা মোবাইল ফোনের Property। আবার একটা মোবাইল ফোন রিং করতে পারে, আলো জ্বালাতে পারে, কাঁপতে পারে, ফোন করতে পারে ইত্যাদি হল এর Behaviors। Object থেকে object এ এই তিনটা বৈশিষ্ট্যই পরিলক্ষিত হয়।

প্রোগ্রামিং এ আমরা আমাদের চারপাশের এইসব বিভিন্ন object নিয়ে কাজ করে থাকি। কোন একটা গেইম প্রোগ্রামিং এ হিরো,বিমান,শত্রু, স্কোর ইত্যাদি কিছু সাধারণ(Generic) বা common object এর উদাহরণ হিসেবে বিবেচনা করা যায়। প্রোগ্রামিং এ object হতে হলে যে তার শারীরিক অবস্থান(physical appearance) থাকতে হবে এমন কোন নিয়ম নাই। হে ব্যাংক অ্যাকাউন্ট, ইভেন্ট, টাইম ইত্যাদিও object হতে পারে। কেননা এদের মধ্যেও আমরা ওই তিনটা বৈশিষ্ট্য দেখতে পাই। সালামের ব্যাংক অ্যাকাউন্ট কুদ্দুসের ব্যাংক অ্যাকাউন্ট থেকে আলাদা-সতন্ত্র, সালামের ব্যাংক অ্যাকাউন্ট ব্যালেন্স $5658 অন্যদিকে কুদ্দুসের ব্যাংক ব্যালেন্স $420420420, যা দুইটা ব্যাংক অ্যাকাউন্টের States বা অবস্থা বর্ণনা করে। আবার সালাম তার ব্যাংক অ্যাকাউন্ট থেকে টাকা তুলতে পারে, টাকা জমা করতে পারে, অ্যাকাউন্ট বন্ধ করে দিতে পারে যা হল সালামের ব্যাংক অ্যাকাউন্টের Behaviors।

Class

Object oriented প্রোগ্রামিং এর আসল কথা হল class । class ছাড়া object কল্পনা করা যায় না। class থেকে object তৈরি করা হয়। যদি একটা বিল্ডিং object হয় তবে class হবে তার নকশা বা Blueprint। নকশা আমাদের বলে দেয় বিল্ডিং দেখতে কেমন হবে, এতে কি কি থাকবে ইত্যাদি আরো অনেক কিছু কিন্তু Blueprint নিজে বিল্ডিং না। ঠিক একই ভাবে, class নির্বাচন করে object এ কি কি বৈশিষ্ট্য থাকবে বা কি নিয়ে গঠিত হবে, object কি কি ধরনের Behave বা কাজ করতে পারবে, কিন্তু class নিজে object না।

যেরকম একটা Blueprint দিয়ে শত শত বাড়ি তৈরি করা যায় এবং প্রতিটি বাড়িই একটি আরেকটা থেকে আলাদা, ঠিক সেরকম ও একটা class দিয়ে শত শত object তৈরি করা যায়।

Object তৈরি করাকে instantiation বলা হয়।

যেহেতু class থেকে object তৈরি করা হয় এবং প্রতিটি object এ কমন তিনটি বৈশিষ্ট্য পাওয়া যায়, সেহেতু প্রতিটি class এই তিনটা জিনিষের সমন্বয়ে গঠিত। যথা

  • type/name
  • attributes/characteristics
  • behaviors

উদাহরণ সরূপ নিচের JAVA ল্যাঙ্গুয়েজে লেখা BankAccount class কে বিবেচনা করা যাক।

Note 1 : উদাহরণের কোড নিয়ে চিন্তার কোন কারণ নাই। জিনিষটা ক্লিয়ার করার জন্য দেখানো হয়েছে।

public class BankAccount {
	
	public String name;
	public float balance;

	public void deposite(float x) {
		balance += x;
	}

}

প্রথম লাইনের BankAccount হল class এর নাম বা টাইপ। তিন এবং চার নাম্বার লাইনে বলা হয়েছে প্রতিটি BankAccount টাইপের object এ কি কি attributes(গুনাগুণ) থাকছে এবং সাত থেকে শুরু করে নয় নাম্বার লাইন পর্যন্ত code block টি, প্রতিটি BankAccount টাইপের object এর behavior বা কাজ define করছে।

এটি খুব সাধারণ একটা BankAccount class যা থেকে এখন আমরা দুইটা BankAccount টাইপের object তৈরি করব। একটা BankAccount তৈরি করব সালামের জন্য এবং আরেকটা তৈরি করব কুদ্দুসের জন্য । যার চিত্ররূপ নিচের ছবির মতে হবে।

bankAccountUML.png

Note 2 : নিচের বিষয়গুলো মনে রাখার চেষ্টা করুন

  • class থেকে object তৈরি করা হয়। একটি class থেকে যত খুশি তত object তৈরি করা যায়।
  • প্রতিটি object সতন্ত্র এবং এদের attributes ও behaviors থাকে।
  • OOP এ function কে method এবং variable কে attribute বলা হয়।
  • Object তৈরি করাকে instantiation বলা হয়।

class লিখার সময় কয়েকটা terms অথবা নিয়ম মেনে লিখা হয়। যাদেরকে সংক্ষেপে বলা যায় APIE । যার মানে হল:

  • Abstraction
  • Polymorephism
  • Inheritance
  • Encapsulation

পরবর্তী পোষ্টে আমরা OOP এর এইসব কনসেপ্ট নিয়ে আলোচনা করব। সেই পর্যন্ত সবাই ভালো থাকুন এবং এই পোষ্ট টি আপনাদের বন্ধুদের সাথে শেয়ার করুন।

ধন্যবাদ।

Share