Properties এবং Methods অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর দুটি মৌলিক ধারণা। এগুলি প্রোগ্রামের অবজেক্টগুলোর আচরণ এবং গুণাবলী নির্ধারণে ব্যবহৃত হয়। বিশেষ করে, সি-ভিত্তিক ভাষাগুলিতে যেমন Objective-C, Swift, C++ ইত্যাদিতে এগুলোর গুরুত্বপূর্ণ ভূমিকা থাকে।
Properties (প্রপার্টি)
Properties একটি অবজেক্টের গুণাবলী বা স্টেট নির্ধারণ করে, অর্থাৎ অবজেক্টটির ভেরিয়েবল বা ডেটার মান। প্রপার্টি একধরনের পরিবর্তনযোগ্য বা অ-পরিবর্তনযোগ্য ডেটার রিপ্রেজেন্টেশন হিসেবে কাজ করে এবং একে সাধারণত ক্লাসের সদস্য ভেরিয়েবল হিসেবে ব্যবহার করা হয়।
প্রপার্টির গঠন:
- Getter: একটি প্রপার্টির মান পাওয়ার জন্য ব্যবহৃত ফাংশন।
- Setter: একটি প্রপার্টির মান সেট করার জন্য ব্যবহৃত ফাংশন।
এছাড়া, প্রপার্টি অ্যাক্সেস কন্ট্রোলের জন্য অ্যাট্রিবিউট যোগ করা যায়, যেমন readwrite, readonly, nonatomic, strong, weak, ইত্যাদি।
উদাহরণ (Objective-C):
@interface Car : NSObject
@property NSString *model;
@property int year;
@end
@implementation Car
// প্রপার্টির getter এবং setter তৈরি করার প্রয়োজন নেই,
// কারণ এটি অটোমেটিক্যালি তৈরি হয় যখন @property ডিক্লেয়ার করা হয়।
@endএখানে model এবং year হল প্রপার্টি, যেগুলি Car ক্লাসের অবজেক্টের গুণাবলী বা স্টেট হিসেবে কাজ করে। এই প্রপার্টিগুলির মাধ্যমে অবজেক্টের ডেটা পরিচালনা করা যাবে।
উদাহরণ (Swift):
class Car {
var model: String
var year: Int
init(model: String, year: Int) {
self.model = model
self.year = year
}
}এখানে model এবং year হল প্রপার্টি, এবং Car ক্লাসের অবজেক্টের স্টেট। init মেথডের মাধ্যমে প্রপার্টিগুলির প্রাথমিক মান সেট করা হয়।
প্রপার্টির ব্যবহার:
Car *myCar = [[Car alloc] init];
myCar.model = @"Tesla Model S";
myCar.year = 2022;
NSLog(@"Car Model: %@, Year: %d", myCar.model, myCar.year);Output:
Car Model: Tesla Model S, Year: 2022Methods (মেথড)
Methods হল ক্লাসের ফাংশন বা অ্যাকশন যা অবজেক্টের আচরণ এবং কার্যক্রম নির্ধারণ করে। মেথড অবজেক্টের প্রপার্টি বা স্টেটের উপর কাজ করতে পারে এবং কখনও কখনও এটি নতুন স্টেট বা আচরণ তৈরি করে।
মেথড দুটি ধরণের হতে পারে:
- Instance Methods: অবজেক্টের ডেটার উপর কাজ করে।
- Class Methods: ক্লাস লেভেলে কাজ করে, অবজেক্টের ডেটার উপর নয়।
উদাহরণ (Objective-C):
@interface Car : NSObject
@property NSString *model;
@property int year;
- (void) displayCarDetails; // instance method
@end
@implementation Car
- (void) displayCarDetails {
NSLog(@"Car Model: %@, Year: %d", self.model, self.year);
}
@endএখানে displayCarDetails একটি method যা Car ক্লাসের একটি ইনস্ট্যান্সের ডেটা (যেমন model এবং year) প্রিন্ট করবে।
উদাহরণ (Swift):
class Car {
var model: String
var year: Int
init(model: String, year: Int) {
self.model = model
self.year = year
}
func displayCarDetails() {
print("Car Model: \(model), Year: \(year)")
}
}এখানে displayCarDetails একটি method যা Car ক্লাসের একটি অবজেক্টের ডেটা ব্যবহার করে তথ্য প্রদর্শন করবে।
মেথডের ব্যবহার:
Car *myCar = [[Car alloc] init];
myCar.model = @"Tesla Model 3";
myCar.year = 2022;
[myCar displayCarDetails];Output:
Car Model: Tesla Model 3, Year: 2022Properties এবং Methods এর পার্থক্য
| বৈশিষ্ট্য | Properties | Methods |
|---|---|---|
| কাজ | অবজেক্টের গুণাবলী বা স্টেট ধারণ করে | অবজেক্টের আচরণ বা কার্যক্রম নির্ধারণ করে |
| প্রকার | ভেরিয়েবল বা ডেটা | ফাংশন বা অ্যাকশন |
| অ্যাক্সেস | সরাসরি বা getter/setter ব্যবহার করা যায় | মেথড কল করে |
| উদাহরণ | model, year | displayCarDetails, startEngine |
সারাংশ
- Properties: এটি ক্লাসের অবজেক্টের গুণাবলী বা স্টেট, যা ডেটা ধারণ করে। এটি সাধারণত ভেরিয়েবল, কনস্ট্যান্ট, বা সেটার হিসেবে থাকে।
- Methods: এটি ক্লাসের অবজেক্টের কার্যক্রম বা আচরণ নির্ধারণ করে এবং এটি কোডে ডেটার উপর কাজ করতে ব্যবহৃত হয়।
এগুলি একসাথে ব্যবহৃত হয়, যেখানে প্রপার্টি অবজেক্টের ডেটা ধারণ করে এবং মেথড সেই ডেটার উপর কাজ বা অ্যাকশন সম্পাদন করে।
Read more