Переход к третьему этапу во 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 инициализируется с заданным именем. Это краткое руководство по классам, которое можно расширить для объяснения функций получения и установки.