CoffeeScript-এ ক্লাস তৈরি করা এবং কনস্ট্রাক্টর ব্যবহার করা JavaScript-এর তুলনায় অনেক সহজ ও পরিষ্কার। CoffeeScript ক্লাস সিনট্যাক্সের মাধ্যমে আপনি সহজেই অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) কনসেপ্ট ব্যবহার করতে পারেন। এখানে ক্লাস তৈরি এবং কনস্ট্রাক্টর ব্যবহারের সম্পূর্ণ প্রক্রিয়া আলোচনা করা হয়েছে।
CoffeeScript-এ ক্লাস তৈরি
CoffeeScript-এ ক্লাস তৈরি করতে class কিওয়ার্ড ব্যবহার করা হয়, এবং ক্লাসের মধ্যে মেথড ডিফাইন করার জন্য @ ব্যবহার করা হয়। এই সিনট্যাক্স JavaScript ক্লাসের তুলনায় আরও পরিষ্কার এবং সংক্ষিপ্ত।
উদাহরণ: ক্লাস তৈরি
class Person
constructor: (@name, @age) -> # কনস্ট্রাক্টর
sayHello: ->
console.log "Hello, my name is #{@name} and I am #{@age} years old."
এই কোডে:
classদিয়ে একটি ক্লাস তৈরি করা হয়েছে।constructor:কনস্ট্রাক্টর মেথড ডিফাইন করা হয়েছে যা অবজেক্ট তৈরি করার সময় কিছু প্রপার্টি অ্যাসাইন করবে।@ব্যবহার করে ক্লাসের প্রপার্টি বা মেথড ডিফাইন করা হয়েছে (যা JavaScript-এthisহিসাবে কাজ করবে)।
কনস্ট্রাক্টর (Constructor) ব্যবহার
CoffeeScript-এ কনস্ট্রাক্টর constructor: দিয়ে ডিফাইন করা হয়। এই কনস্ট্রাক্টর ফাংশনটি অবজেক্টের প্রপার্টি সেট করতে ব্যবহৃত হয় যখন একটি নতুন অবজেক্ট তৈরি করা হয়।
উদাহরণ: কনস্ট্রাক্টর ব্যবহার
class Person
constructor: (@name, @age) -> # কনস্ট্রাক্টর
sayHello: ->
console.log "Hello, my name is #{@name} and I am #{@age} years old."
person1 = new Person("Alice", 30) # অবজেক্ট তৈরি
person1.sayHello() # Hello, my name is Alice and I am 30 years old.
এখানে:
@nameএবং@ageকনস্ট্রাক্টর ফাংশনের মাধ্যমে প্রপার্টি হিসেবে সেট করা হয়েছে।new Person("Alice", 30)এর মাধ্যমে একটি নতুন অবজেক্ট তৈরি করা হয়েছে এবং কনস্ট্রাক্টরের মান পাস করা হয়েছে।
JavaScript-এ কম্পাইল হওয়া কোড:
var Person;
Person = (function() {
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.sayHello = function() {
return console.log("Hello, my name is " + this.name + " and I am " + this.age + " years old.");
};
return Person;
})();
CoffeeScript-এ ক্লাস ইনহেরিটেন্স (Inheritance)
CoffeeScript-এ ক্লাস ইনহেরিটেন্স খুব সহজে করা যায়। একটি ক্লাস অন্য ক্লাস থেকে মেথড এবং প্রপার্টি ইনহেরিট করতে পারে।
উদাহরণ: ক্লাস ইনহেরিটেন্স
class Animal
constructor: (@name) ->
speak: ->
console.log "#{@name} makes a noise."
class Dog extends Animal
speak: ->
console.log "#{@name} barks."
dog = new Dog("Rex")
dog.speak() # Rex barks.
এখানে:
Animalক্লাসটি একটি সাধারণ ক্লাস, যা একটিspeakমেথড ধারণ করে।Dogক্লাসটিAnimalক্লাস থেকে ইনহেরিট করেছে এবং তার নিজেরspeakমেথড পুনরায় সংজ্ঞায়িত করেছে।
JavaScript-এ কম্পাইল হওয়া কোড:
var Animal, Dog;
Animal = (function() {
function Animal(name) {
this.name = name;
}
Animal.prototype.speak = function() {
return console.log(this.name + " makes a noise.");
};
return Animal;
})();
Dog = (function() {
__extends(Dog, Animal);
function Dog(name) {
Dog.__super__.constructor.call(this, name);
}
Dog.prototype.speak = function() {
return console.log(this.name + " barks.");
};
return Dog;
})();
CoffeeScript-এ স্ট্যাটিক মেথড (Static Methods)
CoffeeScript-এ ক্লাসের মধ্যে স্ট্যাটিক মেথডও তৈরি করা যায়। স্ট্যাটিক মেথড ক্লাসের নাম দিয়ে ডাকা হয়, অবজেক্টের মাধ্যমে নয়।
উদাহরণ: স্ট্যাটিক মেথড
class Calculator
add: (a, b) -> a + b
subtract: (a, b) -> a - b
multiply: (a, b) -> a * b
divide: (a, b) -> a / b
static calculateArea: (length, width) -> length * width
এখানে, calculateArea একটি স্ট্যাটিক মেথড যা Calculator ক্লাসের নাম দিয়ে কল করা যেতে পারে, অবজেক্টের মাধ্যমে নয়।
ব্যবহার:
area = Calculator.calculateArea(10, 5)
console.log area # 50
JavaScript-এ কম্পাইল হওয়া কোড:
var Calculator;
Calculator = (function() {
function Calculator() {}
Calculator.prototype.add = function(a, b) {
return a + b;
};
Calculator.prototype.subtract = function(a, b) {
return a - b;
};
Calculator.prototype.multiply = function(a, b) {
return a * b;
};
Calculator.prototype.divide = function(a, b) {
return a / b;
};
Calculator.calculateArea = function(length, width) {
return length * width;
};
return Calculator;
})();
সারাংশ
CoffeeScript-এ ক্লাস তৈরি এবং কনস্ট্রাক্টর ব্যবহার করা খুবই সহজ। class কিওয়ার্ড দিয়ে ক্লাস তৈরি করা হয়, এবং constructor: দিয়ে ক্লাসের কনস্ট্রাক্টর ডিফাইন করা হয়। CoffeeScript-এ ক্লাসের মধ্যে @ ব্যবহার করে প্রপার্টি এবং মেথড ডিফাইন করা হয়। CoffeeScript JavaScript-এর তুলনায় আরও পরিষ্কার এবং সংক্ষিপ্ত কোড লেখার সুযোগ দেয়, এবং এটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর জন্য একটি দুর্দান্ত উপায়।
Read more