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

# require 'pry'
class Person
def hello
   puts "Hi! World!"
  end
end
sally = Person.new
sally.hello
#<Person:0x0000000001b57150> - sally as an object
# binding.pry

Приведенный выше пример является очень простым примером создания класса. Этот небольшой пример по-прежнему обладает большой универсальностью, которую после полного изучения можно расширить и улучшить. Приведенный выше класс создает класс, который может иметь множество методов на основе созданных экземпляров. Экземпляр — это новый объект, который создается при вызове Person.new. Когда sally создается, sally создается как объект, каждый из этих созданных индивидуумов затем называется экземпляром.

Внутри класса создается метод hello, который можно вызывать для любого созданного экземпляра. После создания sally sally.hello вызывается вне класса. Как только этот код будет запущен внутри терминала, будет напечатан вывод Hi! World!. Теперь этот метод можно вызывать для любого экземпляра, созданного после этого.

# require 'pry'
class Person
  
def add
   puts 1 + 1
  end
def down(string)
   puts string.downcase
  end
def up(string)
    puts string.upcase
  end
  
end
sally = Person.new
sally.down('HELLO')
sally.up('hello')
sally.add
# binding.pry

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

# require 'pry'
class Person
  
 def initialize(name)
   @name = name
   puts @name
 end 
end
sally = Person.new("Sally")
# binding.pry
#const variable DOG = 'Sally'
#local variable dog = 'Sally'
#instance variable @dog = "sally"
#class variable @@dog = "Sally"

Выше приведен еще один метод, который можно вызвать для экземпляра, который, как следует из названия, инициализирует некоторую информацию для объекта экземпляра. Прежде чем объяснять метод инициализации, краткий обзор переменных в Ruby. Во-первых, есть локальная переменная, которая может быть чем-то вроде dog = ‘sally’, которую нельзя использовать внутри класса, но можно использовать только внутри этого конкретного метода. Другой тип переменной — это переменная экземпляра @name = name. Эта переменная привязана к экземпляру определенного класса.

Метод initialize инициализирует информацию на основе аргумента и информации, предоставленной внутри метода. Выше приведен аргумент имени, который означает, что при создании нового экземпляра экземпляр ожидает инициализации с некоторой информацией, иначе он выдаст ошибку. Теперь экземпляр sally инициализируется с заданным именем. Это краткое руководство по классам, которое можно расширить для объяснения функций получения и установки.