Objective-C

From binaryoption
Jump to navigation Jump to search
Баннер1

অবজেক্টিভ-সি প্রোগ্রামিং ভাষা

ভূমিকা

অবজেক্টিভ-সি (Objective-C) একটি সাধারণ প্রোগ্রামিং ভাষা যা সি প্রোগ্রামিং ভাষার ওপর ভিত্তি করে তৈরি করা হয়েছে। এটি স্মলটক-এর মতো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং বৈশিষ্ট্য যুক্ত করে সি-কে প্রসারিত করে। অ্যাপলের ওএস এক্স এবং আইওএস অপারেটিং সিস্টেমের জন্য অ্যাপ্লিকেশন তৈরির প্রধান ভাষা হিসেবে অবজেক্টিভ-সি ব্যবহৃত হত। যদিও বর্তমানে Swift অ্যাপলের পছন্দের ভাষা, তবুও পুরনো কোডবেস এবং কিছু নির্দিষ্ট ক্ষেত্রে অবজেক্টিভ-সি এখনও গুরুত্বপূর্ণ।

ইতিহাস

১৯৮০-এর দশকের শুরুতে ব্র্যাড কক্স এবং টম লাভ অবজেক্টিভ-সি তৈরি করেন। তাঁরা স্মলটকের বার্তা পাঠানোর ক্ষমতা সি-এর সাথে যুক্ত করতে চেয়েছিলেন। অবজেক্টিভ-সি মূলত নেক্সট (NeXT) অপারেটিং সিস্টেমের জন্য তৈরি করা হয়েছিল, যা পরবর্তীতে অ্যাপল কর্তৃক অধিগ্রহণ করা হয়। অ্যাপল ম্যাক ওএস এক্স এবং আইওএস-এর উন্নয়নে অবজেক্টিভ-সি-কে তাদের প্রধান ভাষা হিসেবে ব্যবহার করে।

বৈশিষ্ট্যসমূহ

অবজেক্টিভ-সি-এর কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য নিচে উল্লেখ করা হলো:

  • অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং: এটি ইনহেরিটেন্স, পলিморфиজম, এবং এনক্যাপসুলেশন সমর্থন করে।
  • মেসেজ পাসিং: অবজেক্টিভ-সি-তে অবজেক্টগুলোর মধ্যে যোগাযোগ মেসেজ পাঠানোর মাধ্যমে হয়।
  • ডাইনামিক টাইপিং: রানটাইমে ভেরিয়েবলের ধরন নির্ধারণ করা যায়।
  • সি-এর সাথে আন্তঃকার্যকারিতা: অবজেক্টিভ-সি সহজেই সি কোডের সাথে কাজ করতে পারে।
  • ফাউন্ডেশন ফ্রেমওয়ার্ক: অ্যাপল কর্তৃক সরবরাহ করা একটি শক্তিশালী ফ্রেমওয়ার্ক, যা বিভিন্ন ধরনের ডেটা স্ট্রাকচার এবং ফাংশন সরবরাহ করে।

সিনট্যাক্স

অবজেক্টিভ-সি-এর সিনট্যাক্স সি-এর মতোই, তবে কিছু অতিরিক্ত বৈশিষ্ট্য রয়েছে।

  • অবজেক্ট ঘোষণা: অবজেক্ট ঘোষণা করার জন্য @interface এবং @implementation কীওয়ার্ড ব্যবহার করা হয়।
   ```objectivec
   @interface MyClass : NSObject
   {
       int value;
   }
   @property (nonatomic, assign) int value;
   - (int) getValue;
   - (void) setValue:(int)newValue;
   @end
   @implementation MyClass
   - (int) getValue {
       return value;
   }
   - (void) setValue:(int)newValue {
       value = newValue;
   }
   @end
   ```
  • মেসেজ পাঠানো: অবজেক্টের মেথড কল করার জন্য [object method] সিনট্যাক্স ব্যবহার করা হয়।
   ```objectivec
   MyClass *myObject = [[MyClass alloc] init];
   [myObject setValue:10];
   int val = [myObject getValue];
   ```
  • প্রপার্টি: প্রপার্টিগুলি অবজেক্টের ডেটা এনক্যাপসুলেট করতে ব্যবহৃত হয়। @property ডিরেক্টিভ ব্যবহার করে প্রপার্টি ঘোষণা করা হয়।
  • কীওয়ার্ড: @interface, @implementation, @property, @synthesize ইত্যাদি অবজেক্টিভ-সি-এর বিশেষ কীওয়ার্ড।

মেমরি ম্যানেজমেন্ট

অবজেক্টিভ-সি-তে মেমরি ম্যানেজমেন্ট একটি গুরুত্বপূর্ণ বিষয়। পূর্বে ম্যানুয়াল রেফারেন্স কাউন্টিং (MRC) ব্যবহার করা হতো, যেখানে ডেভেলপারদের অবজেক্টের মেমরি নিজে থেকে পরিচালনা করতে হতো। বর্তমানে অটোমেটিক রেফারেন্স কাউন্টিং (ARC) বহুলভাবে ব্যবহৃত হয়, যা কম্পাইলার স্বয়ংক্রিয়ভাবে মেমরি ব্যবস্থাপনার কাজ করে।

মেমরি ম্যানেজমেন্টের প্রকারভেদ
প্রকার বিবরণ ম্যানুয়াল রেফারেন্স কাউন্টিং (MRC) ডেভেলপারদের অবজেক্টের রেফারেন্স গণনা এবং মেমরি ডিallocation নিজে করতে হয়। অটোমেটিক রেফারেন্স কাউন্টিং (ARC) কম্পাইলার স্বয়ংক্রিয়ভাবে রেফারেন্স গণনা করে এবং মেমরি ডিallocation করে।

ফাউন্ডেশন ফ্রেমওয়ার্ক

ফাউন্ডেশন ফ্রেমওয়ার্ক অবজেক্টিভ-সি প্রোগ্রামিং-এর একটি অপরিহার্য অংশ। এটি বিভিন্ন ধরনের ডেটা স্ট্রাকচার, কালেকশন ক্লাস, ফাইল অপারেশন, নেটওয়ার্কিং এবং অন্যান্য প্রয়োজনীয় ফাংশন সরবরাহ করে।

  • NSString: স্ট্রিং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়।
  • NSArray: অ্যারে তৈরির জন্য ব্যবহৃত হয়।
  • NSDictionary: ডিকশনারি তৈরির জন্য ব্যবহৃত হয়।
  • NSFileHandle: ফাইল নিয়ে কাজ করার জন্য ব্যবহৃত হয়।
  • NSURL: ইউআরএল নিয়ে কাজ করার জন্য ব্যবহৃত হয়।

অবজেক্টিভ-সি এবং সুইফট

অ্যাপল ২০১৪ সালে সুইফট নামক একটি নতুন প্রোগ্রামিং ভাষা চালু করে, যা অবজেক্টিভ-সি-এর আধুনিক বিকল্প হিসেবে বিবেচিত হয়। সুইফট অবজেক্টিভ-সি-এর চেয়ে নিরাপদ, দ্রুত এবং সহজবোধ্য। বর্তমানে অ্যাপল সুইফটকে তাদের প্রধান প্রোগ্রামিং ভাষা হিসেবে উৎসাহিত করছে। তবে, অবজেক্টিভ-সি এখনও অনেক পুরনো প্রোজেক্টে ব্যবহৃত হচ্ছে এবং সুইফটের সাথে ইন্টারঅপারেবিলিটি বজায় রাখে।

ব্যবহারের ক্ষেত্রসমূহ

  • ওএস এক্স এবং আইওএস অ্যাপ্লিকেশন ডেভেলপমেন্ট: অবজেক্টিভ-সি দীর্ঘদিন ধরে এই প্ল্যাটফর্মগুলোর জন্য অ্যাপ্লিকেশন তৈরির প্রধান ভাষা ছিল।
  • কমান্ড-লাইন টুলস: এটি কমান্ড-লাইন ইন্টারফেস তৈরির জন্য ব্যবহার করা যেতে পারে।
  • সিস্টেম প্রোগ্রামিং: কিছু সিস্টেম-স্তরের প্রোগ্রামিংয়ের জন্য অবজেক্টিভ-সি ব্যবহার করা হয়।

উদাহরণ প্রোগ্রাম

নিচে একটি সাধারণ অবজেক্টিভ-সি প্রোগ্রামের উদাহরণ দেওয়া হলো:

```objectivec

  1. import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

   @autoreleasepool {
       NSLog(@"Hello, World!");
   }
   return 0;

} ``` এই প্রোগ্রামটি "Hello, World!" বার্তাটি কনসোলে প্রিন্ট করে।

অ্যাডভান্সড ধারণা

  • ব্লক: ব্লক হলো ইনলাইন ফাংশন যা ভেরিয়েবলের মতো ব্যবহার করা যায়।
  • গ্র্যান্ড সেন্ট্রাল ডিসপ্যাচ (GCD): এটি কনকারেন্সি এবং প্যারালালিজম ব্যবস্থাপনার জন্য ব্যবহৃত হয়।
  • কোর ডেটা: এটি ডেটা মডেলিং এবং ব্যবস্থাপনার জন্য ব্যবহৃত হয়।
  • অটোমেটিক রেফারেন্স কাউন্টিং (ARC): মেমরি ব্যবস্থাপনার জন্য একটি স্বয়ংক্রিয় পদ্ধতি।
  • কেটগরি: বিদ্যমান ক্লাসে নতুন মেথড যুক্ত করার জন্য ব্যবহৃত হয়।

ডিবাগিং এবং টেস্টিং

অবজেক্টিভ-সি কোড ডিবাগ করার জন্য Xcode একটি শক্তিশালী আইডিই (Integrated Development Environment) সরবরাহ করে। এছাড়াও, বিভিন্ন টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করে কোডের গুণগত মান নিশ্চিত করা যায়।

উপসংহার

অবজেক্টিভ-সি একটি শক্তিশালী এবং নির্ভরযোগ্য প্রোগ্রামিং ভাষা, যা অ্যাপল প্ল্যাটফর্মের জন্য অ্যাপ্লিকেশন তৈরিতে ব্যাপকভাবে ব্যবহৃত হয়েছে। যদিও সুইফট এর জনপ্রিয়তা বাড়ছে, অবজেক্টিভ-সি এখনও ডেভেলপারদের জন্য একটি গুরুত্বপূর্ণ দক্ষতা।

আরও জানতে


অভ্যন্তরীণ লিঙ্ক: সি স্মলটক ওএস এক্স আইওএস Swift ইনহেরিটেন্স পলিморфиজম এনক্যাপসুলেশন মেসেজ পাসিং ডাইনামিক টাইপিং ফাউন্ডেশন ফ্রেমওয়ার্ক ম্যানুয়াল রেফারেন্স কাউন্টিং অটোমেটিক রেফারেন্স কাউন্টিং NSString NSArray NSDictionary NSFileHandle NSURL Xcode অ্যাপল ডেভেলপার ডকুমেন্টেশন অবজেক্টিভ-সি প্রোগ্রামিং টিউটোরিয়াল Stack Overflow - Objective-C ব্লক গ্র্যান্ড সেন্ট্রাল ডিসপ্যাচ (GCD) কোর ডেটা কেটগরি

এখনই ট্রেডিং শুরু করুন

IQ Option-এ নিবন্ধন করুন (সর্বনিম্ন ডিপোজিট $10) Pocket Option-এ অ্যাকাউন্ট খুলুন (সর্বনিম্ন ডিপোজিট $5)

আমাদের সম্প্রদায়ে যোগ দিন

আমাদের টেলিগ্রাম চ্যানেলে যোগ দিন @strategybin এবং পান: ✓ দৈনিক ট্রেডিং সংকেত ✓ একচেটিয়া কৌশলগত বিশ্লেষণ ✓ বাজারের প্রবণতা সম্পর্কে বিজ্ঞপ্তি ✓ নতুনদের জন্য শিক্ষামূলক উপকরণ

Баннер