Attributes এবং Methods হল অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর দুটি গুরুত্বপূর্ণ ধারণা। এগুলি ক্লাসের অভ্যন্তরে ব্যবহৃত হয় এবং অবজেক্টের গঠন এবং আচরণ নির্ধারণ করতে সাহায্য করে। চলুন দেখে নেওয়া যাক Attributes এবং Methods কী এবং কীভাবে এগুলি ব্যবহার করা হয়।
Attributes (অ্যাট্রিবিউটস)
Attributes হল ক্লাসের বৈশিষ্ট্য বা ডেটা যা একটি অবজেক্টের অবস্থাকে বর্ণনা করে। এগুলি সাধারণত ক্লাসের ভেতরে ডিফাইন করা হয় এবং একটি অবজেক্টের ইন্সট্যান্সের সাথে সম্পর্কিত থাকে। Attributes সাধারণত ডেটা বা ভেরিয়েবল হিসেবে কাজ করে এবং অবজেক্টের গুণাবলী বা স্টেট (state) কিপে রাখে।
Attributes এর ব্যবহার
- ক্লাসের মধ্যে একটি অ্যাট্রিবিউট ডিফাইন করা হয় এবং এটি ক্লাসের প্রতিটি অবজেক্টের জন্য আলাদা থাকে।
- অ্যাট্রিবিউট সাধারণত public বা private হতে পারে, যা নির্ধারণ করে এটি অবজেক্টের বাইরে অ্যাক্সেস করা যাবে কি না।
Attributes উদাহরণ (Python)
class Car:
def __init__(self, brand, model, color):
self.brand = brand # Attribute: brand
self.model = model # Attribute: model
self.color = color # Attribute: color
# Creating an object of the Car class
car1 = Car("Toyota", "Corolla", "Red")
print(car1.brand) # Output: Toyota
print(car1.model) # Output: Corollaএখানে, brand, model, এবং color হল ক্লাস Car এর অ্যাট্রিবিউটস। এগুলি অবজেক্টের বৈশিষ্ট্য বর্ণনা করে।
Methods (মেথডস)
Methods হল ক্লাসের কার্যক্রম বা ফাংশন যা অবজেক্টের সাথে কাজ করে এবং তার অ্যাট্রিবিউটস এর মান পরিবর্তন বা প্রসেসিং করে। মেথডগুলি ক্লাসের মধ্যে সংজ্ঞায়িত করা হয় এবং ক্লাসের অবজেক্টের মাধ্যমে এগুলি কল করা হয়।
Methods এর ব্যবহার
- মেথড সাধারণত instance methods বা class methods হিসাবে ব্যবহৃত হতে পারে।
- Instance methods হল মেথড যা একটি নির্দিষ্ট অবজেক্টের সাথে কাজ করে।
- Class methods হল মেথড যা ক্লাসের সাথে সম্পর্কিত, কিন্তু অবজেক্টের সাথে সম্পর্কিত নয়।
Methods উদাহরণ (Python)
class Car:
def __init__(self, brand, model, color):
self.brand = brand # Attribute: brand
self.model = model # Attribute: model
self.color = color # Attribute: color
def start_engine(self):
print(f"The {self.brand} {self.model}'s engine is starting.")
def stop_engine(self):
print(f"The {self.brand} {self.model}'s engine is stopping.")
# Creating an object of the Car class
car1 = Car("Toyota", "Corolla", "Red")
car1.start_engine() # Calling method: start_engine
car1.stop_engine() # Calling method: stop_engineএখানে, start_engine() এবং stop_engine() হল মেথড যা অবজেক্টের বৈশিষ্ট্যের ভিত্তিতে কাজ করছে। self কীওয়ার্ডটি ব্যবহার করা হয়েছে যা বর্তমান অবজেক্টের রেফারেন্স হিসেবে কাজ করে।
Attributes এবং Methods এর মধ্যে পার্থক্য
| Attributes | Methods |
|---|---|
| Attributes হল ডেটা বা বৈশিষ্ট্য যা অবজেক্টের অবস্থাকে বর্ণনা করে। | Methods হল ফাংশন যা অবজেক্টের আচরণ বা কার্যক্রম নির্ধারণ করে। |
| Attributes ক্লাসের অবজেক্টের সাথে সম্পর্কিত ডেটা স্টোর করে। | Methods অবজেক্টের সাথে কাজ করে এবং তার ডেটা প্রসেস করে। |
| Attributes সাধারণত ভেরিয়েবল হিসেবে কাজ করে। | Methods সাধারণত ফাংশন হিসেবে কাজ করে। |
Attributes এবং Methods ব্যবহার করার ক্ষেত্র
- Attributes ব্যবহার করা হয় যখন আপনি অবজেক্টের মধ্যে স্থায়ী ডেটা বা গুণাবলী সংরক্ষণ করতে চান, যেমন একজন ব্যক্তির নাম, বয়স, অথবা একটি গাড়ির রঙ, মডেল ইত্যাদি।
- Methods ব্যবহার করা হয় যখন আপনি অবজেক্টের আচরণ বা কার্যক্রম কন্ট্রোল করতে চান, যেমন গাড়ির ইঞ্জিন চালু বা বন্ধ করা, বা কোনো গাণিতিক অপারেশন করা।
Attributes এবং Methods এর সংমিশ্রণ
একটি অ্যাট্রিবিউট এবং মেথডের সমন্বয়ে আপনি অবজেক্টের পূর্ণ গঠন ও আচরণ নির্ধারণ করতে পারেন। উদাহরণ হিসেবে একটি ব্যাংক অ্যাকাউন্ট ক্লাস কল্পনা করুন:
class BankAccount:
def __init__(self, account_holder, balance):
self.account_holder = account_holder # Attribute
self.balance = balance # Attribute
def deposit(self, amount): # Method
self.balance += amount
print(f"{amount} has been deposited. New balance: {self.balance}")
def withdraw(self, amount): # Method
if self.balance >= amount:
self.balance -= amount
print(f"{amount} has been withdrawn. Remaining balance: {self.balance}")
else:
print("Insufficient funds")
# Creating an object of the BankAccount class
account = BankAccount("John Doe", 1000)
account.deposit(500)
account.withdraw(200)এখানে account_holder এবং balance হল অ্যাট্রিবিউটস, আর deposit() এবং withdraw() হল মেথডস যা ব্যাংক অ্যাকাউন্টের কার্যক্রম নির্ধারণ করে।
সারাংশ
- Attributes হল ক্লাসের ডেটা বা গুণাবলী যা অবজেক্টের অবস্থাকে বর্ণনা করে।
- Methods হল ক্লাসের কার্যক্রম বা ফাংশন যা অবজেক্টের আচরণ নির্ধারণ করে এবং তার অ্যাট্রিবিউটগুলির সাথে কাজ করে।
- Attributes অবজেক্টের স্টেট সংরক্ষণ করে, এবং Methods অবজেক্টের স্টেট পরিবর্তন করতে বা তার উপর কার্যক্রম পরিচালনা করতে ব্যবহৃত হয়।