Sobes.tech
Intern

Класс дар забони Ruby чист?

sobes.tech AI

Ҷавоб аз AI

Класи дар Ruby шаблон ё ё нақшаи сохтани объектҳо мебошанд. Он сохтор (маълумотҳо/атрибутҳо) ва рафтор (усулҳо) ки намунаҳои ин класи онро хоҳанд дошт, муайян мекунад.

Хусусиятҳои асосӣ:

  • Инкапсулятсия: Маълумотҳо ва усулҳоро, ки бо ин маълумотҳо кор мекунанд, дар як воҳиди ягона муттаҳид мекунад.
  • Наследие: Имкон медиҳад, ки класи нав (подкласи) бар асоси класи мавҷуда (синфи падар) сохта шавад, хусусиятҳо ва рафторҳои онҳоро мерос гирад.
  • Полиформизм: Имкон медиҳад, ки объектҳои класи гуногун ба даъвати як усул дар шакли махсуси худ ҷавоб диҳанд.

Масалан, класи оддӣ:

class Dog
  # Конструктори класи
  def initialize(name, breed)
    @name = name # Атрибути намуна
    @breed = breed # Атрибути намуна
  end

  # Усули намуна
  def bark
    "#{@name} мегӯяд Гав!"
  end

  # Геттер барои атрибут
  def name
    @name
  end
end

# Сохтани намунаи класи (объект)
my_dog = Dog.new("Бобик", "Саги кӯча")

# Даъвати усули намуна
puts my_dog.bark # Натиҷа: Бобик мегӯяд Гав!
puts my_dog.name # Натиҷа: Бобик

Класи дар Ruby объекти синфи аввал мебошанд, инчунин метавонанд динамикӣ тағир дода шаванд.