Attributes এবং Methods এর ব্যবহার

Object-Oriented Programming (অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং) - রুবি প্রোগ্রামিং (Ruby Programming) - Computer Programming

282

রুবি প্রোগ্রামিং ভাষায় Attributes (অ্যাট্রিবিউটস) এবং Methods (মেথডস) হল অবজেক্ট ও ক্লাসের মৌলিক উপাদান। এগুলোর মাধ্যমে ডেটা সংরক্ষণ এবং সেই ডেটার উপর কাজ করার পদ্ধতি নির্ধারণ করা হয়। রুবিতে Attributes সাধারণত একটি ক্লাসের ভেরিয়েবল বা বৈশিষ্ট্যকে প্রতিনিধিত্ব করে, এবং Methods সেই ডেটার সাথে কাজ করার পদ্ধতি নির্ধারণ করে।


১. Attributes (অ্যাট্রিবিউটস)

রুবিতে Attributes হল ক্লাসের মধ্যে সংরক্ষিত ভেরিয়েবল যা অবজেক্টের বৈশিষ্ট্য বা ডেটা হিসেবে কাজ করে। এই অ্যাট্রিবিউটসকে সাধারণত instance variables বলা হয় এবং এগুলি একটি অবজেক্টের স্থায়ী ডেটাকে প্রতিনিধিত্ব করে।

১.১ Instance Variables

রুবিতে, একটি ক্লাসের instance variables হল ভেরিয়েবল যা প্রতিটি অবজেক্টের জন্য আলাদা থাকে। এগুলি একটি ক্লাসের অবজেক্টের মধ্যে সংরক্ষিত থাকে এবং @ চিহ্ন দিয়ে চিহ্নিত করা হয়।

class Person
  def initialize(name, age)
    @name = name  # ইনস্ট্যান্স ভেরিয়েবল @name
    @age = age    # ইনস্ট্যান্স ভেরিয়েবল @age
  end

  def display_info
    puts "Name: #{@name}, Age: #{@age}"
  end
end

person = Person.new("আজিজ", 25)
person.display_info  # আউটপুট: Name: আজিজ, Age: 25

এখানে, @name এবং @age হল ইনস্ট্যান্স ভেরিয়েবল যা অবজেক্টের বৈশিষ্ট্য হিসেবে কাজ করে।

১.২ Class Variables

ক্লাস ভেরিয়েবলগুলি ক্লাসের সমস্ত অবজেক্টের জন্য একক মান ধারণ করে এবং এগুলি @@ চিহ্ন দিয়ে চিহ্নিত করা হয়।

class Person
  @@count = 0  # ক্লাস ভেরিয়েবল

  def initialize(name, age)
    @name = name
    @age = age
    @@count += 1
  end

  def self.count
    puts "Total persons: #{@@count}"
  end
end

person1 = Person.new("আজিজ", 25)
person2 = Person.new("রাহুল", 30)
Person.count  # আউটপুট: Total persons: 2

এখানে, @@count একটি ক্লাস ভেরিয়েবল, যা সমস্ত অবজেক্টের মধ্যে শেয়ার করা হয়।


২. Methods (মেথডস)

রুবিতে Methods হল কোডের ব্লক যা ক্লাসের ডেটা বা অ্যাট্রিবিউটসের উপর কাজ করে। একটি মেথডকে ব্যবহার করে আপনি অ্যাট্রিবিউটসের মান পরিবর্তন, তাদের প্রক্রিয়া বা আউটপুট প্রদর্শন করতে পারেন।

২.১ Instance Methods

Instance methods হল সেই মেথডগুলি যা একটি অবজেক্টের উপর কাজ করে এবং অবজেক্টের ইনস্ট্যান্স ভেরিয়েবলস ব্যবহার করে।

class Person
  def initialize(name, age)
    @name = name
    @age = age
  end

  def display_info
    puts "Name: #{@name}, Age: #{@age}"
  end
end

person = Person.new("আজিজ", 25)
person.display_info  # আউটপুট: Name: আজিজ, Age: 25

এখানে, display_info একটি ইনস্ট্যান্স মেথড, যা @name এবং @age ভেরিয়েবল ব্যবহার করে অবজেক্টের তথ্য প্রদর্শন করে।

২.২ Class Methods

Class methods হল সেই মেথডগুলি যা ক্লাসের ওপর কাজ করে, নির্দিষ্ট অবজেক্টের ওপর নয়। ক্লাস মেথডগুলিকে self দিয়ে চিহ্নিত করা হয়।

class Person
  def self.greet
    puts "Hello, welcome to the Person class!"
  end
end

Person.greet  # আউটপুট: Hello, welcome to the Person class!

এখানে, greet হল একটি ক্লাস মেথড, যা ক্লাস Person এর সাথে সম্পর্কিত এবং এর কোনো নির্দিষ্ট ইনস্ট্যান্সের প্রয়োজন নেই।

২.৩ Getter এবং Setter Methods

রুবি ক্লাসের ইনস্ট্যান্স ভেরিয়েবলগুলির মান পেতে এবং সেট করতে getter এবং setter মেথড ব্যবহার করা হয়।

Getter Method:
class Person
  def initialize(name, age)
    @name = name
    @age = age
  end

  def name
    @name  # getter method
  end
end

person = Person.new("আজিজ", 25)
puts person.name  # আউটপুট: আজিজ
Setter Method:
class Person
  def initialize(name, age)
    @name = name
    @age = age
  end

  def name=(new_name)
    @name = new_name  # setter method
  end
end

person = Person.new("আজিজ", 25)
person.name = "রাহুল"
puts person.name  # আউটপুট: রাহুল

এখানে, name এবং name= যথাক্রমে getter এবং setter মেথড।

২.৪ attr_accessor, attr_reader, attr_writer

রুবি একটি সোজা পদ্ধতি প্রদান করে attr_accessor, attr_reader, এবং attr_writer এর মাধ্যমে getter এবং setter মেথড স্বয়ংক্রিয়ভাবে তৈরি করতে।

class Person
  attr_accessor :name, :age  # Creates both getter and setter for :name and :age
end

person = Person.new
person.name = "আজিজ"
person.age = 25
puts person.name  # আউটপুট: আজিজ
puts person.age   # আউটপুট: 25

এখানে, attr_accessor স্বয়ংক্রিয়ভাবে name এবং age এর জন্য getter এবং setter মেথড তৈরি করেছে।


৩. Attributes এবং Methods এর মধ্যে পার্থক্য

বৈশিষ্ট্যAttributes (অ্যাট্রিবিউটস)Methods (মেথডস)
সংজ্ঞাক্লাস বা অবজেক্টের ডেটা বা বৈশিষ্ট্য।একটি কোডের ব্লক যা ডেটার উপর কাজ করে।
লক্ষ্যঅবজেক্টের ডেটা সংরক্ষণ।অবজেক্টের ডেটা বা অ্যাট্রিবিউটসের উপর অপারেশন সম্পাদন।
অপারেটর@ চিহ্ন দিয়ে চিহ্নিত করা হয়।def এবং end দিয়ে সংজ্ঞায়িত করা হয়।
পাঠযোগ্যতাসাধারণত রিড-অনলি বা রাইট-অনলি।সাধারণত অ্যাট্রিবিউটসের মান পরিবর্তন বা ফলাফল প্রদান করতে ব্যবহৃত।
প্রকারইনস্ট্যান্স ভেরিয়েবল বা ক্লাস ভেরিয়েবল হতে পারে।ইনস্ট্যান্স মেথড বা ক্লাস মেথড হতে পারে।

সারসংক্ষেপ

  • Attributes (অ্যাট্রিবিউটস) হল একটি ক্লাসের ডেটা বা বৈশিষ্ট্য যা ইনস্ট্যান্স ভেরিয়েবল দ্বারা সংরক্ষিত হয়। এটি ক্লাস বা অবজেক্টের অবস্থা বা চরিত্র প্রদর্শন করে।
  • Methods (মেথডস) হল কোডের ব্লক যা ডেটার উপর কার্যকরী কাজ করে। মেথডগুলি ক্লাসের ফাংশনালিটি নির্ধারণ করে।
  • রুবিতে getter এবং setter মেথড ব্যবহার করে আপনি অ্যাট্রিবিউটের মান পেতে এবং সেট করতে পারেন, অথবা attr_accessor, attr_reader, attr_writer ব্যবহার করে স্বয়ংক্রিয়ভাবে মেথড তৈরি করতে পারেন।
Content added By
Promotion

Are you sure to start over?

Loading...