অবজেক্ট অরিয়েন্টেড ক্লাস (OOP class)

অবজেক্ট অরিয়েন্টেড পিএইচপি (PHP OOP) - পিএইচপি প্রোগ্রামিং (PHP Programming) - Computer Programming

363

Class প্রোগ্রামার-ডিফাইন্ড ডেটা টাইপ। যার মধ্যে লোকাল ডেটা এবং লোকাল ফাংশন থাকে। আপনি একটি class কে টেমপ্লেট হিসাবে ধরে একই ধরনের অনেক অবজেক্ট(instance of class) তৈরি করতে পারেন।


কিভাবে class তৈরি করবেন?

একটি class তৈরির জন্য অনেক গুলো কোড এর সমন্বয়ে একটি গ্রুপ অব কোড তৈরি করতে হবে যার মাধ্যমে আপনি একটি নির্দিষ্ট বিষয়কে হ্যান্ডেল বা পরিচালনা করতে পারবেন।

যেমন- একটি ব্লগ এর কথাই ধরুন। আপনি ব্লগের ইউজার সংক্রান্ত সকল কোড এর সমন্বয়ে একটি class, পোস্ট সম্পর্কিত সকল কোড এর সমন্বয়ে অন্য একটি class এবং কমেন্ট সম্পর্কিত সকল কোড এর সমন্বয়ে ভিন্ন আরেকটি class ক্লাস তৈরি করতে পারেন।

কোডের গ্রুপ নিয়ে class তৈরি করলে কোড শুধু পুনঃব্যবহারযোগ্যই হয় না, বরং কোডগুলো পরিচর্যা এবং পরিবর্তন করাও সহজ হয়ে যায়।

class নামকরণঃ একটি class এর নামকরন এর জন্য একটি একক নাম ব্যবহার করা হয়। Class এর নাম এর প্রথম বর্ণটি বড় হাতের হতে হয়।

উদাহরণস্বরূপঃ আমরা ব্লগের ইউজার নিয়ন্ত্রণ এর কোড গ্রুপ নিয়ে একটি User ক্লাস, পোস্ট নিয়ন্ত্রণের কোড গ্রুপ নিয়ে একটি Post ক্লাস এবং কমেন্ট এর কোড গ্রুপ নিয় একটি Comment ক্লাস তৈরি করতে পারি।

Class তৈরির সিনট্যাক্সঃ

kt_satt_skill_example_id=570

এখানে আমরা class কিওয়ার্ড এর মাধ্যমে ClassName নামে একটি ক্লাস ডিফাইন করেছি। class এর নামের প্রথম অক্ষরটি বড়-হাতের অক্ষরে লিখেছি এবং class নামে দুটি শব্দ থাকায় দুটি শব্দেরই প্রথম অক্ষর বড়-হাতের অক্ষরে লিখেছি। এই পদ্ধতিকে upper camel case বলে। class নামকরনের সময় একাধিক শব্দ ব্যবহার করলে আমরা এই পদ্ধতি ব্যবহার করবো।


class এ কিভাবে প্রোপার্টি যুক্ত করবেন?

আমরা একটি class এর মধ্যে ব্যবহৃত ভ্যারিয়েবল সমুহকে প্রোপার্টি বলে থাকি। প্রোপার্টিসমুহ অন্য যে কোনো ভ্যারিয়েবলের মতই স্ট্রিং, ইন্টিজার, বুলিয়ান(true অথবা false) টাইপের মান গ্রহণ করতে পারে।

নিম্নের উদাহরনে আমরা Greeting class এ দুটি প্রোপার্টি যুক্ত করবোঃ

kt_satt_skill_example_id=572

উপরের প্রোগ্রামে লক্ষ্য করলে দেখবেন, class এর মধ্যে প্রোপার্টি নামের পূর্বে public কিওয়ার্ড ব্যবহার করা হয়েছে। এটি ইউজারকে প্রোপার্টি এক্সেস এর ক্ষমতা প্রদান করে। public কিওয়ার্ড সম্মন্ধে আরও জানতে এক্সেস মোডিফায়ার অধ্যায় ভিজিট করুন।

class ভ্যারিয়েবলের নাম অন্যান্য ভ্যারিয়েবলের মতই ছোট-হাতের অক্ষর দিয়ে শুরু হয়। আর নামের মধ্যে যদি একাধিক শব্দ থাকে সেক্ষেত্রে প্রথম শব্দের প্রথম অক্ষরটি ছোট হাতের রেখে বাকী শব্দগুলোর জন্য আপনি camel case পদ্ধতি ব্যবহার করতে পারেন। যেমন- welcomeMsg।

ডিফল্ট ভ্যালুসহ অথবা ডিফল্ট ভ্যালু ছাড়াও প্রোপার্টি ডিফাইন্ড করা যায়। যেমন- উপরের উদাহরনে আমরা দুইটি প্রোপার্টি ডিফাইন করেছি। এদের মধ্যে একটির ডিফল্ট মান নির্ধারন করে দিয়েছি ($welcomeMsg = "Welcome Guest";) এবং অন্যটির ($message) ডিফল্ট মান নাই।


Class এ কিভাবে মেথড যুক্ত করবেন?

আমরা একটি class এর মধ্যে ব্যবহৃত ফাংশন সমুহকে মেথড বলে থাকি। মেথড সমুহ অন্য যে কোনো ফাংশনের মতই কাজ করে।

নিম্নের উদাহরণে আমরা Greeting class এ একটি মেথড যুক্ত করবোঃ

kt_satt_skill_example_id=574

উপরের উদাহরনে লক্ষ্য করলে দেখবেন, class এর মধ্যে message() নামে একটি মেথড ডিফাইন করা হয়েছে।

মেথড এর পূর্বে public কিওয়ার্ড ব্যবহার করা হয়েছে। এটি ইউজারকে প্রোপার্টি এক্সেস এর ক্ষমতা প্রদান করে। public কিওয়ার্ড সম্মন্ধে আরও জানতে এক্সেস মোডিফায়ার অধ্যায় ভিজিট করুন।

class ফাংশনের নাম অন্যান্য ফাংশনের মতই ছোট-হাতের অক্ষর দিয়ে শুরু হয়। নামের মধ্যে যদি একাধিক শব্দ থাকে তাহলে প্রথম শব্দের প্রথম অক্ষরটি ছোট হাতের রেখে বাকী শব্দগুলোর জন্য আপনি camel case পদ্ধতি ব্যবহার করতে পারেন। যেমন- welcomeMsg()।


class এর Object তৈরি

আমরা একটি class থেকে নিজস্ব কিছু প্রোপার্টি সম্পন্ন বিভিন্ন Object তৈরি করতে পারি।

Object তৈরির সিনট্যাক্সঃ

kt_satt_skill_example_id=575

Class এর Object তৈরি করতে আমরা সাধারণত new কিওয়ার্ড ব্যবহার করি। অবজেক্ট তৈরির এই প্রক্রিয়া আমাদের কাছে instantiation হিসাবেও বেশ পরিচিত।

আমরা একই class এর একাধিক Object তৈরি করতে পারিঃ

kt_satt_skill_example_id=576

kt_satt_skill_example_id=577

পরবর্তী অধ্যায়ে আমরা অবজেক্ট সম্মন্ধে আরও বিস্তারিত জানবো।

Content added || updated By
Promotion

Are you sure to start over?

Loading...