ফাংশন (Functions) এবং মেথড (Methods) হল প্রোগ্রামিং ভাষার অত্যন্ত গুরুত্বপূর্ণ কনসেপ্ট। এই দুটি ধারণা একে অপরের সঙ্গে সম্পর্কিত, তবে কিছু মৌলিক পার্থক্য রয়েছে। আসুন, এগুলোর মৌলিক ধারণাগুলি বুঝে নেওয়া যাক।
১. ফাংশন (Function)
ফাংশন একটি নির্দিষ্ট কাজ বা অপারেশন সম্পাদন করার জন্য ব্যবহৃত একটি ব্লক বা কোডের অংশ। ফাংশনগুলি সাধারণত নির্দিষ্ট ইনপুট গ্রহণ করে এবং একটি আউটপুট প্রদান করে। এগুলি কোড পুনঃব্যবহারযোগ্য করতে সহায়তা করে, কারণ একবার একটি ফাংশন তৈরি করা হলে, সেটি বিভিন্ন জায়গায় কল (use) করা যেতে পারে।
ফাংশনের মৌলিক গঠন:
- ফাংশন নাম: ফাংশনকে চিহ্নিত করার জন্য ব্যবহৃত একটি নাম।
- ইনপুট প্যারামিটার (Parameters): ফাংশনে পাঠানো তথ্য (অথবা আর্গুমেন্ট)।
- ফাংশন বডি: ফাংশনের কাজের লজিক।
- আউটপুট (Return): ফাংশনটির কাজের ফলাফল। (অধিকাংশ ফাংশন আউটপুট প্রদান করে, তবে কিছু ফাংশন শুধুমাত্র কাজ করতে পারে এবং কিছুই রিটার্ন নাও করতে পারে)
উদাহরণ:
// একটি সিম্পল ফাংশন যা দুটি সংখ্যার যোগফল বের করে
int add(int a, int b) {
return a + b; // আউটপুট: a এবং b এর যোগফল
}
int main() {
int result = add(5, 3); // ফাংশন কল করা
printf("Sum: %d", result); // আউটপুট: 8
return 0;
}- ফাংশনের নাম:
add - ইনপুট প্যারামিটার:
int a, int b - ফাংশন বডি:
return a + b; - আউটপুট:
a + bএর যোগফল।
২. মেথড (Method)
মেথড হলো একটি ফাংশন যা একটি ক্লাস বা অবজেক্ট এর অংশ হিসেবে ব্যবহৃত হয়। এটি সাধারণত অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) ধারণায় ব্যবহৃত হয়। মেথডের মধ্যে ক্লাসের প্রপার্টি এবং অন্য মেথডগুলোর সাথে কাজ করার ক্ষমতা থাকে।
মেথডগুলি ফাংশনের মতোই কাজ করে, তবে এগুলি সাধারণত একটি নির্দিষ্ট অবজেক্ট বা ক্লাস এর সাথে সম্পর্কিত। একটি মেথড ঐ ক্লাস বা অবজেক্টের প্রপার্টি বা ডেটার উপর কাজ করতে পারে।
মেথডের মৌলিক গঠন:
- মেথড নাম: মেথডটিকে চিহ্নিত করার জন্য নাম।
- ইনপুট প্যারামিটার: মেথডে পাস করা আর্গুমেন্ট বা ইনপুট।
- মেথড বডি: মেথডের ভিতরের কোড যা কার্যক্রম সম্পাদন করে।
- আউটপুট (Return): মেথড যদি কিছু রিটার্ন করে তবে তা হবে আউটপুট।
উদাহরণ:
@interface Car : NSObject
@property NSString *model;
@property int year;
- (void) displayCarDetails; // মেথড ডিক্লেয়ারেশন
@end
@implementation Car
- (void) displayCarDetails { // মেথড ইমপ্লিমেন্টেশন
NSLog(@"Car Model: %@, Year: %d", self.model, self.year);
}
@end
int main() {
Car *myCar = [[Car alloc] init]; // নতুন Car অবজেক্ট তৈরি
myCar.model = @"Tesla Model 3";
myCar.year = 2022;
[myCar displayCarDetails]; // মেথড কল করা
return 0;
}- মেথড নাম:
displayCarDetails - ইনপুট প্যারামিটার: কোনো প্যারামিটার নেই (এই মেথডের ক্ষেত্রে)।
- মেথড বডি: মেথডের ভিতরে
NSLogদিয়ে প্রপার্টি প্রদর্শন করা হচ্ছে। - আউটপুট: প্রপার্টি
modelএবংyearএর মান প্রদর্শিত হবে।
ফাংশন এবং মেথডের মধ্যে পার্থক্য
| বৈশিষ্ট্য | ফাংশন (Function) | মেথড (Method) |
|---|---|---|
| প্রকার | একটি সাধারণ ফাংশন যা কোনো নির্দিষ্ট অবজেক্টের সঙ্গে সম্পর্কিত নয়। | একটি ফাংশন যা একটি নির্দিষ্ট অবজেক্ট বা ক্লাসের অংশ। |
| সংজ্ঞা | প্রোগ্রামে একক কাজ সম্পাদন করে। | অবজেক্ট বা ক্লাসের কাজ সম্পাদন করে। |
| কলিং | একাধিক জায়গায় কল করা যায়, সাধারণভাবে ফাংশন নাম দিয়ে। | একটি অবজেক্ট বা ক্লাসের মাধ্যমে কল করা হয়। |
| অবজেক্ট বা ক্লাসের মধ্যে | অবজেক্ট বা ক্লাসের বাইরে থাকে। | একটি ক্লাসের অন্তর্গত। |
| প্যারামিটার | ইনপুট হিসেবে প্যারামিটার নেয়, আউটপুট রিটার্ন করে। | মেথড সাধারণত ক্লাস বা অবজেক্টের প্রপার্টির সাথে কাজ করে। |
সারাংশ
- ফাংশন (Function): একটি সাধারণ কোড ব্লক যা নির্দিষ্ট কাজ সম্পাদন করে এবং আউটপুট রিটার্ন করে। এটি অবজেক্ট বা ক্লাসের সাথে সম্পর্কিত নয় এবং বিভিন্ন জায়গায় ব্যবহার করা যায়।
- মেথড (Method): এটি একটি ফাংশনের মতো, তবে এটি একটি ক্লাস বা অবজেক্টের অংশ হিসেবে কাজ করে। মেথড ক্লাসের প্রপার্টি বা অন্যান্য মেথডের সাথে কাজ করতে সক্ষম এবং শুধুমাত্র ঐ ক্লাসের বা অবজেক্টের মধ্যে ব্যবহার করা হয়।
ফাংশন এবং মেথডের ব্যবহারে প্যাটার্ন এবং উদ্দেশ্য ভিন্ন হলেও, তাদের কাজের প্রক্রিয়া একে অপরের কাছে অনেকটা মিল থাকে। OOP (অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং) ধারণায় মেথডগুলি বেশি ব্যবহৃত হয়, কারণ এটি অবজেক্টের সাথে সম্পর্কিত।
Read more