Одной из основных функций каждого языка программирования являются классы и объекты. Сегодня я научу вас объявлять и использовать классы в Ruby.

Давайте начнем!

  1. Имена классов должны начинаться с заглавной буквы.
  2. Чтобы объявить класс, добавьте ключевое слово class, затем введите имя и не забудьте добавить ключевое слово end.

Вот как это должно выглядеть:

class Person

end

Чтобы упростить процесс обучения, вы можете думать о классах, подобных фабрикам, которые производят объекты.

Итак, теперь, после того как мы объявили наш класс, мы должны заставить его что-то делать для нас.

Первый метод, который вы должны объявить, это метод инициализации. Что делает этот метод, так это создает ключи вашего объекта.

Вот пример:

class Person

  def initialize(first_name, last_name, age)
      @first_name = first_name    
      @last_name = last_name
      @age = age
  end

end

p1 = Person.new("Maxim", "Polyakov", 18)
binding.pry

Не волнуйтесь, я проведу вас через этот код

  1. Как только мы объявили метод инициализации, мы добавили ключи объектов в качестве аргументов, в нашем случае это: first_name, last_name и age.
  2. Чтобы понять следующую часть, позвольте мне объяснить, как мы можем создать новый объект, синтаксис очень прост, все, что вам нужно сделать, это указать имя вашего класса и добавить .new, затем вы можете указать first_name, last_name и first имя в скобках.
  3. Итак, что же происходит внутри нашего метода инициализации? Мы создаем переменные экземпляра с символом @ и присваиваем им наши аргументы.

Теперь, когда мы создадим нашего первого человека, мы можем использовать pry, чтобы увидеть его значения в терминале.

Теперь предположим, что вы хотите изменить значение определенного ключа. Для этого вам нужно создать метод установки и дать ему имя экземпляра, который вы хотите изменить.

class Person

  def initialize(first_name, last_name, age)
      @first_name = first_name    
      @last_name = last_name
      @age = age
  end
 
 # setter method
  def first_name=(first_name)
      @first_name = first_name
  end

end

p1 = Person.new("Maxim", "Polyakov", 18)
binding.pry

Здесь мы делаем то же самое, что и при инициализации, мы присваиваем наш аргумент first_name ключу нашего объекта.

Круто, теперь мы можем изменить наши ключевые значения, но что, если мы хотим увидеть их в нашем терминале? Вот где геттер вступает в игру. Чтобы объявить метод получения, вы можете просто создать метод с тем же именем, что и экземпляр, который вы хотите увидеть.

class Person

  def initialize(first_name, last_name, age)
      @first_name = first_name    
      @last_name = last_name
      @age = age
  end
 
 # setter method
  def first_name=(first_name)
      @first_name = first_name
  end

  # getter method
   def last_name
      @last_name
   end

end

p1 = Person.new("Maxim", "Polyakov", 18)
binding.pry

Да, геттеры так просты, все, что вам нужно сделать, это указать ключ, который вы хотите видеть, в методе геттера.

Самое безумное в том, что вы можете сделать сеттер и геттер в ОДНОЙ строке.

Все, что вам нужно сделать, это использовать attr_accessor.

class Person

  attr_accessor :age

  def initialize(first_name, last_name, age)
      @first_name = first_name    
      @last_name = last_name
      @age = age
  end
 
 # setter method
  def first_name=(first_name)
      @first_name = first_name
  end

  # getter method
   def last_name
      @last_name
   end

end

p1 = Person.new("Maxim", "Polyakov", 18)
binding.pry

Здесь все, что вам нужно сделать, это передать ключ, который вы хотите обновить, и посмотреть.

Это все, что вам нужно знать, чтобы начать использовать классы в ваших будущих проектах на Ruby.

Удачного кодирования!