Одной из основных функций каждого языка программирования являются классы и объекты. Сегодня я научу вас объявлять и использовать классы в Ruby.
Давайте начнем!
- Имена классов должны начинаться с заглавной буквы.
- Чтобы объявить класс, добавьте ключевое слово 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
Не волнуйтесь, я проведу вас через этот код
- Как только мы объявили метод инициализации, мы добавили ключи объектов в качестве аргументов, в нашем случае это: first_name, last_name и age.
- Чтобы понять следующую часть, позвольте мне объяснить, как мы можем создать новый объект, синтаксис очень прост, все, что вам нужно сделать, это указать имя вашего класса и добавить .new, затем вы можете указать first_name, last_name и first имя в скобках.
- Итак, что же происходит внутри нашего метода инициализации? Мы создаем переменные экземпляра с символом @ и присваиваем им наши аргументы.
Теперь, когда мы создадим нашего первого человека, мы можем использовать 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.
Удачного кодирования!