Ruby – это мощный язык программирования, предлагающий современные функции и инструменты. Одной из таких функций является поддержка объектно-ориентированного программирования, включая полиморфизм, инкапсуляции, абстракцию, наследование и многое другое.
В этой статье будет обсуждаться ключевая концепция объектно-ориентированного программирования: объект и классы.
Начнем с класса.
Класс – это схема для создания объектов и предоставления реализаций значений, включая переменные, методы, атрибуты и многое другое.
С другой стороны, объект – это единственный экземпляр класса. Возьмем, к примеру, машину. Мы можем создать класс, который описывает чертежи сборки автомобиля. Атрибуты класса могут быть всем, что есть у автомобилей:
Класс автомобиля также может включать методы, которые представляют собой действия, которые могут выполнять объекты класса. Примером может служить то, что автомобиль может зажигаться, ускоряться, останавливаться и т. д.
Классы очень удобны, когда вам нужно создать похожие объекты только с различными аспектами. Вместо объявления блока кода для автомобиля Mercedes, Bugatti, Tesla и т. д. Вы можете создать один класс, на который ссылается каждая модель.
Ruby – невероятный язык, который также очень прост в использовании. Он предоставляет простой синтаксис для создания класса.
Общий синтаксис:
class ClassName # БЛОК end
Мы начинаем с вызова ключевого слова class, за которым следует имя класса, который мы хотим создать. Имя класса начинается с заглавной буквы и использует CamelCase для следующих имен.
Внутри класса мы определяем все переменные и методы, которые потребуются классу.
Мы закрываем код класса с помощью ключевого слова end.
Давайте посмотрим на примере класса автомобиля.
class Car def initialize(engine, name, year) @engine = engine @name = name @year = year end def ignite puts "Зажигание!" end def stop puts "Остановка транспортного средства" end def accelerate(target_speed) @target_speed = target_speed puts "Автомобиль разгоняется до #{target_speed} m/h" end end f = Car.new("a108d", "F A-Class", 2010 ) g = Car.new("00Ca", "Zero G-8", 2011) h = Car.new("777d", "G Potato", 2022)
В приведенном выше коде мы начинаем с определения класса автомобиля. Внутри класса мы определяем метод инициализации, особый тип метода в Ruby, используемый для создания вызываемого экземпляра класса с необходимыми аргументами. Метод инициализации действует как конструктор для new.
Внутри метода инициализации мы передаем двигатель, имя и год выпуска автомобиля. Затем мы выполняем несколько действий с автомобилем, включая зажигание, ускорение и остановку.
Наконец, мы создаем экземпляр класса автомобиля. Мы называем это экземпляром, потому что мы создаем экземпляр класса.
Мы передаем параметры методу инициализации, который создает три уникальных типа автомобилей.
В приведенном выше примере мы создаем класс с различными методами, но еще не использовали их. Чтобы использовать метод, мы просто вводим имя объекта, за которым следует точка и имя метода.
Синтаксис:
my_object.method
Возьмем предыдущий пример; Чтобы зажечь автомобиль f, мы можем:
// Ссылка на код выше f = Car.new("a108d", "F A-Class", 2010 ) g = Car.new("00Ca", "Zero G-8", 2011) h = Car.new("777d", "G Potato", 2022) f.ignite
Если мы запустим приведенный выше код, мы увидим, что автомобиль успешно загорелся, напечатав строку «Зажигание!»
Каждая часть метода инициализации работает как команда, определяющая действия, которые может выполнять объект, созданный из класса.
Каждый тип в Ruby – это объект класса. Вы можете просмотреть, из какого класса создан объект, с помощью метода класса.
Например:
class Car def initialize(engine, name, year) @engine = engine @name = name @year = year end def ignite puts "Зажигание!" end def stop puts "Остановка транспортного средства" end def accelerate(target_speed) @target_speed = target_speed puts "Автомобиль разгоняется до #{target_speed} m/h" end end f = Car.new("a108d", "F A-Class", 2010 ) puts "hello".class puts 10.class puts 11.023.class puts f.class
После выполнения кода мы должны увидеть классы для строки, целого числа, числа с плавающей запятой и автомобиля как:
String Integer Float Car
В этой статье мы изучили основы объектно-ориентированного программирования в Ruby с использованием классов и объектов. Приятно отметить, что ООП – обширная тема. Ознакомьтесь с другими ресурсами, чтобы узнать больше.