Instance এবং Static Methods

ক্লাস এবং অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং - কফিস্ক্রিপ্ট (CoffeeScript) - Web Development

269

CoffeeScript, JavaScript-এর মতোই, ক্লাস এবং অবজেক্ট-ভিত্তিক প্রোগ্রামিং সমর্থন করে। এতে আপনি instance methods এবং static methods ডিফাইন করতে পারেন, যা ক্লাসের ইনস্ট্যান্স বা ক্লাস itself এর সাথে সম্পর্কিত ফাংশনালিটি প্রদান করে। এই দুটি ধরণের মেথড কোডকে আরও সংগঠিত ও কার্যকরী করে তোলে।


১. Instance Methods

Instance methods হল সেই মেথড যেগুলি একটি ক্লাসের ইনস্ট্যান্সের উপর কার্যকরী হয়। প্রতিটি ইনস্ট্যান্সের জন্য আলাদা আলাদা মেথড থাকে।

উদাহরণ: Instance Method তৈরি

class Person
  constructor: (@name, @age) ->

  greet: ->
    console.log "Hello, my name is #{@name} and I am #{@age} years old."

person1 = new Person("Alice", 25)
person1.greet()  # "Hello, my name is Alice and I am 25 years old."

এখানে, greet একটি instance method, যা Person ক্লাসের প্রতিটি ইনস্ট্যান্সের সাথে কাজ করে।

JavaScript-এ কম্পাইল হওয়া কোড:

var Person, person1;

Person = (function() {
  function Person(name, age) {
    this.name = name;
    this.age = age;
  }

  Person.prototype.greet = function() {
    return console.log("Hello, my name is " + this.name + " and I am " + this.age + " years old.");
  };

  return Person;

})();

person1 = new Person("Alice", 25);
person1.greet();  // "Hello, my name is Alice and I am 25 years old."

২. Static Methods

Static methods হল সেই মেথড যেগুলি ক্লাসের ইনস্ট্যান্সের উপর নির্ভর করে না, বরং ক্লাসের নিজস্ব অংশ হিসেবে কাজ করে। এই মেথডগুলি ক্লাসের কোন নির্দিষ্ট ইনস্ট্যান্স ছাড়া ব্যবহার করা যায়। এগুলি সাধারণত ক্লাস সম্পর্কিত কাজের জন্য ব্যবহৃত হয়।

উদাহরণ: Static Method তৈরি

class Person
  constructor: (@name, @age) ->

  greet: ->
    console.log "Hello, my name is #{@name} and I am #{@age} years old."

  # Static Method
  Person.isAdult = (age) ->
    age >= 18

console.log Person.isAdult(20)  # true

এখানে, isAdult একটি static method, যা Person ক্লাসের কোনো ইনস্ট্যান্স ছাড়াই সরাসরি ক্লাসের মাধ্যমে অ্যাক্সেস করা যায়।

JavaScript-এ কম্পাইল হওয়া কোড:

var Person;

Person = (function() {
  function Person(name, age) {
    this.name = name;
    this.age = age;
  }

  Person.prototype.greet = function() {
    return console.log("Hello, my name is " + this.name + " and I am " + this.age + " years old.");
  };

  // Static Method
  Person.isAdult = function(age) {
    return age >= 18;
  };

  return Person;

})();

console.log(Person.isAdult(20));  // true

Instance এবং Static Methods এর মধ্যে পার্থক্য

বৈশিষ্ট্যInstance MethodsStatic Methods
অ্যাক্সেস পদ্ধতিক্লাসের ইনস্ট্যান্স থেকে ব্যবহার করা হয়ক্লাস থেকে সরাসরি ব্যবহার করা হয়
this কীওয়ার্ড ব্যবহারইনস্ট্যান্সের প্রপার্টি অ্যাক্সেস করতে ব্যবহৃতক্লাসের সাথে সম্পর্কিত কাজের জন্য ব্যবহৃত
উদাহরণgreet, updateAgeisAdult, calculateAge

উদাহরণ: Instance এবং Static Methods একত্রে ব্যবহার

class Car
  constructor: (@brand, @model, @year) ->

  # Instance Method
  getDetails: ->
    console.log "Car: #{@brand} #{@model}, Year: #{@year}"

  # Static Method
  Car.isVintage = (year) ->
    currentYear = new Date().getFullYear()
    currentYear - year > 20

car1 = new Car("Toyota", "Corolla", 2005)
car1.getDetails()  # "Car: Toyota Corolla, Year: 2005"

console.log Car.isVintage(2000)  # true
console.log Car.isVintage(2015)  # false

JavaScript-এ কম্পাইল হওয়া কোড:

var Car, car1;

Car = (function() {
  function Car(brand, model, year) {
    this.brand = brand;
    this.model = model;
    this.year = year;
  }

  // Instance Method
  Car.prototype.getDetails = function() {
    return console.log("Car: " + this.brand + " " + this.model + ", Year: " + this.year);
  };

  // Static Method
  Car.isVintage = function(year) {
    var currentYear;
    currentYear = new Date().getFullYear();
    return currentYear - year > 20;
  };

  return Car;

})();

car1 = new Car("Toyota", "Corolla", 2005);
car1.getDetails();  // "Car: Toyota Corolla, Year: 2005"

console.log(Car.isVintage(2000));  // true
console.log(Car.isVintage(2015));  // false

সারাংশ

  • Instance methods ব্যবহার করা হয় ক্লাসের ইনস্ট্যান্সের উপর কার্যকরী মেথড হিসেবে, যা প্রতিটি ইনস্ট্যান্সের জন্য আলাদা থাকে।
  • Static methods ব্যবহার করা হয় ক্লাসের নিজস্ব অংশ হিসেবে, এবং এগুলি ক্লাসের ইনস্ট্যান্সের প্রয়োজন ছাড়াই অ্যাক্সেস করা যায়।
  • CoffeeScript-এ -> দিয়ে instance method এবং ClassName.methodName দিয়ে static method ডিফাইন করা হয়।

এগুলি CoffeeScript-এ কোডের পাঠযোগ্যতা এবং কার্যকারিতা বাড়ায়, বিশেষত যখন আপনি object-oriented প্রোগ্রামিং স্টাইল ব্যবহার করছেন।

Content added By
Promotion

Are you sure to start over?

Loading...