Основы ООП в Ruby: классы и объекты | Урок 10

Основы ООП в Ruby: классы и объекты Ruby

Привет, друзья! Сегодня мы погрузимся в увлекательный мир объектно-ориентированного программирования (ООП) на Ruby. Если вы хотите стать настоящим Ruby-ниндзя, понимание ООП — это ваш путь к успеху!

Предыдущий урок: Исключения в Ruby

Следующий урок: Наследование и полиморфизм в Ruby

Что такое ООП и почему оно важно?

Объектно-ориентированное программирование — это подход к созданию программ, где все представлено в виде объектов. Объекты — это сущности, которые имеют свои свойства (данные) и поведение (методы). ООП помогает нам организовать код, делая его более понятным, повторно используемым и легко поддерживаемым.

Классы в Ruby: фабрики объектов

В Ruby класс — это чертеж или шаблон для создания объектов. Представьте, что класс — это форма для печенья, а объекты — это сами печеньки!

Давайте создадим наш первый класс:

class Dog
  def initialize(name, breed)
    @name = name
    @breed = breed
  end

  def bark
    puts "Гав-гав! Меня зовут #{@name}!"
  end
end

Здесь мы определили класс Dog с методом initialize (конструктор) и методом bark.

Создание объектов: оживляем наших собак

Теперь давайте создадим несколько объектов класса Dog:

rex = Dog.new("Рекс", "Немецкая овчарка")
sharik = Dog.new("Шарик", "Дворняжка")

rex.bark    # Выведет: Гав-гав! Меня зовут Рекс!
sharik.bark # Выведет: Гав-гав! Меня зовут Шарик!

Каждый объект Dog имеет свое собственное имя и породу, но использует один и тот же метод bark.

Атрибуты и методы: данные и поведение

В ООП атрибуты (переменные экземпляра) представляют данные объекта, а методы определяют его поведение.

Давайте добавим геттеры и сеттеры для наших атрибутов:

class Dog
  attr_reader :name, :breed
  attr_writer :name

  def initialize(name, breed)
    @name = name
    @breed = breed
  end

  def bark
    puts "Гав-гав! Меня зовут #{@name}!"
  end

  def info
    puts "#{@name} - #{@breed}"
  end
end

Теперь мы можем получать и изменять имя собаки:

rex = Dog.new("Рекс", "Немецкая овчарка")
puts rex.name  # Выведет: Рекс
rex.name = "Бобик"
rex.info  # Выведет: Бобик - Немецкая овчарка

Инкапсуляция: защищаем наши данные

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

В Ruby мы можем использовать приватные методы:

class Dog
  # ... предыдущий код ...

  private

  def secret_trick
    puts "Это секретный трюк, который знает только #{@name}!"
  end
end

rex = Dog.new("Рекс", "Немецкая овчарка")
rex.secret_trick  # Вызовет ошибку: private method `secret_trick' called

Практическое задание: создайте свой класс

Теперь ваша очередь! Создайте класс Book с атрибутами title, author и pages. Добавьте метод read, который выводит информацию о книге, и метод flip_page, который «перелистывает» страницу.

Вот начало кода:

class Book
  # Ваш код здесь
end

# Создайте несколько объектов Book и вызовите их методы

Заключение

Сегодня мы сделали первые шаги в мире ООП на Ruby. Мы узнали, что такое классы и объекты, как создавать атрибуты и методы, и познакомились с принципом инкапсуляции.

ООП — это мощный инструмент, который поможет вам создавать более структурированный и поддерживаемый код. В следующих уроках мы углубимся в более продвинутые концепции ООП, такие как наследование и полиморфизм.

Не забудьте попрактиковаться в создании собственных классов и объектов. Помните: практика — путь к совершенству!

До встречи на следующем уроке, где мы продолжим наше увлекательное путешествие в мир Ruby!

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x