জাভাস্ক্রিপ্টে ক্লাস এবং অবজেক্টের পরিচিতি
এখন আমরা জাভাস্ক্রিপ্টে OOP শেখার কাজে নিযুক্ত হব। আসুন আমরা জীবনের একটি উদাহরণ দেখি, এবং তারপর এটি জাভাস্ক্রিপ্টে স্থানান্তর করি।
একটি উদাহরণ হিসাবে গাড়ি নেওয়া যাক। এর চাকা আছে, রঙ, বডির ধরন, ইঞ্জিনের আয়তন ইত্যাদি। এছাড়াও, ড্রাইভার এটিকে কমান্ড দিতে পারে: চালাও, থামো, ডানে ঘুরো, বামে ইত্যাদি।
এটা বলা যেতে পারে যে একটি নির্দিষ্ট ক্লাস গাড়ির আছে, যার সাধারণ বৈশিষ্ট্য রয়েছে (সবার চাকা আছে এবং সবার কমান্ড দেওয়া যায়)।
একটি নির্দিষ্ট গাড়ি, যা রাস্তায় দাঁড়িয়ে আছে - এটি এই ক্লাসের একজন প্রতিনিধি, বা, অন্য শব্দে, এই ক্লাসের একটি অবজেক্ট। এই ক্লাসের সমস্ত অবজেক্টের প্রোপার্টি আছে: চাকার সংখ্যা, রঙ, বডির ধরন এবং মেথড: চালাও, থামো, ডানে ঘুরো, বামে ঘুরো।
অন্য কথায়, ক্লাস本身 হল একটি নকশা, যার মাধ্যমে কারখানায় গাড়ি তৈরি করা হয়। অবজেক্ট হল সেই নকশা অনুযায়ী তৈরি করা গাড়ি本身।
জাভাস্ক্রিপ্টে একটি ক্লাস তৈরি করা হয় কীওয়ার্ড
class দিয়ে, যার পরে এই ক্লাসের নাম আসে।
আসুন আমরা Car ক্লাসটি তৈরি করি:
class Car {
// এখানে কোড, অর্থাৎ জাভাস্ক্রিপ্ট-নকশা গাড়ির
}
এখন আমাদের নকশায় নির্দিষ্ট করা যাক যে কোন গাড়ি, এই নকশা অনুযায়ী তৈরি, হবে রঙের জন্য একটি প্রোপার্টি এবং জ্বালানির পরিমাণের জন্য একটি প্রোপার্টি থাকবে।
এর জন্য ক্লাসের ভিতরে আমরা প্রোপার্টি
color এবং প্রোপার্টি fuel লিখি:
class Car {
color; // গাড়ির রঙ
fuel; // জ্বালানির পরিমাণ
}
এখন আমাদের ক্লাসের মেথডগুলি তৈরি করা যাক।
জাভাস্ক্রিপ্টে মেথডগুলি সাধারণ ফাংশনের মতোই,
শুধুমাত্র কীওয়ার্ড function ছাড়া ডিক্লেয়ার করা হয়।
যেমনটি আগে উল্লেখ করা হয়েছে, আমাদের গাড়ি চলতে পারে, ঘুরতে পারে, থামতে পারে। আসুন আমাদের ক্লাসে সংশ্লিষ্ট মেথড তৈরি করি:
class Car {
color; // গাড়ির রঙ
fuel; // জ্বালানির পরিমাণ
// কমান্ড চালাও:
go() {
// কিছু জাভাস্ক্রিপ্ট কোড
}
// কমান্ড ঘুরো:
turn() {
// কিছু জাভাস্ক্রিপ্ট কোড
}
// কমান্ড থামো:
stop() {
// কিছু জাভাস্ক্রিপ্ট কোড
}
}
আমরা আপনার সাথে আমাদের গাড়ির নকশা তৈরি করেছি। এখন কারখানায় যেতে হবে এবং তৈরি করতে হবে এই ক্লাসের একটি অবজেক্ট (অর্থাৎ একটি নির্দিষ্ট গাড়ি)।
জাভাস্ক্রিপ্টে এটি কীওয়ার্ড দিয়ে করা হয়
new, যার পরে ক্লাসের নাম লেখা হয়:
new Car; // কারখানাকে গাড়ি তৈরি করার নির্দেশ দেয়
যাইহোক, যদি শুধুমাত্র ক্লাসের অবজেক্ট তৈরি করা হয় - এটি কোন দিকে নিয়ে যাবে না (এটি একই রকম, যেমন, একটি অ্যারে ডিক্লেয়ার করা এবং এটি কোথাও লেখা না)। আমাদের এই অবজেক্টটি সংরক্ষণের জন্য একটি ভেরিয়েবল প্রয়োজন।
ধরুন এই ভেরিয়েবলের নাম myCar
- এতে আমরা তৈরি করা অবজেক্টটি লিখি:
let myCar = new Car;
গাড়ি তৈরি করার পরে এর প্রোপার্টিগুলিতে অ্যাক্সেস করা যায়। এগুলি অ্যাক্সেস করা হয় ডটের মাধ্যমে। আসুন সেট করি আমাদের অবজেক্টের প্রোপার্টি:
let myCar = new Car; // কারখানাকে গাড়ি তৈরি করার নির্দেশ দেয়
myCar.color = 'red'; // লাল রঙে রাঙানো হয়
myCar.fuel = 50; // জ্বালানি ভরা হয়
এটাই, আমাদের গাড়ি তৈরি, রাঙানো এবং জ্বালানিভর্তি করা হয়েছে। এখন আমরা এটিকে কমান্ড দিতে পারি এই গাড়ির মেথডের মাধ্যমে।
মেথডেও অ্যাক্সেস করা হয় ডটের মাধ্যমে, তবে, প্রোপার্টির থেকে ভিন্ন, মেথডের নামের পরে বন্ধনী লিখতে হয়। আসুন আমাদের অবজেক্টকে কমান্ড দিই:
myCar.go();
myCar.turn();
myCar.stop();