Учебники

Рубин — Классы и Объекты

Ruby — это идеальный объектно-ориентированный язык программирования. Особенности объектно-ориентированного языка программирования включают в себя —

  • Инкапсуляция данных
  • Абстракция данных
  • Полиморфизм
  • наследование

Эти функции обсуждались в главе « Объектно-ориентированный рубин» .

Объектно-ориентированная программа включает в себя классы и объекты. Класс — это проект, из которого создаются отдельные объекты. В объектно-ориентированных терминах мы говорим, что ваш велосипед является экземпляром класса объектов, известных как велосипеды.

Возьмите пример любого транспортного средства. Он включает в себя колеса, лошадиные силы и емкость топливного или бензобака. Эти характеристики формируют данные членов класса Vehicle. С помощью этих характеристик вы можете отличить одно транспортное средство от другого.

Транспортное средство также может иметь определенные функции, такие как остановка, вождение и превышение скорости. Даже эти функции образуют данные членов класса Vehicle. Следовательно, вы можете определить класс как комбинацию характеристик и функций.

Класс транспортного средства может быть определен как —

Class Vehicle {

   Number no_of_wheels
   Number horsepower
   Characters type_of_tank
   Number Capacity
   Function speeding {
   }
   
   Function driving {
   }
   
   Function halting {
   }
}

Назначая разные значения этим элементам данных, вы можете сформировать несколько экземпляров класса Vehicle. Например, самолет имеет три колеса, 1000 лошадиных сил, топливо в качестве типа танка и вместимость 100 литров. Точно так же автомобиль имеет четыре колеса, мощность 200 лошадиных сил, бензин в качестве типа бака и емкость 25 литров.

Определение класса в Ruby

Чтобы реализовать объектно-ориентированное программирование с использованием Ruby, вам сначала нужно научиться создавать объекты и классы в Ruby.

Класс в Ruby всегда начинается с ключевого слова class, за которым следует имя класса. Имя всегда должно быть в заглавных буквах. Класс Customer может отображаться как —

class Customer
end

Вы завершаете класс, используя ключевое слово end . Все члены данных в классе находятся между определением класса и ключевым словом end .

Переменные в классе Ruby

Ruby предоставляет четыре типа переменных —

  • Локальные переменные — локальные переменные — это переменные, которые определены в методе. Локальные переменные недоступны вне метода. Вы увидите более подробную информацию о методе в следующей главе. Локальные переменные начинаются со строчной буквы или _.

  • Переменные экземпляра — переменные экземпляра доступны в разных методах для любого конкретного экземпляра или объекта. Это означает, что переменные экземпляра меняются от объекта к объекту. Переменным экземпляра предшествует знак (@), за которым следует имя переменной.

  • Переменные класса — переменные класса доступны для разных объектов. Переменная класса принадлежит классу и является характеристикой класса. Им предшествует знак @@ и сопровождается именем переменной.

  • Глобальные переменные — переменные класса не доступны для разных классов. Если вы хотите иметь единственную переменную, которая доступна для всех классов, вам нужно определить глобальную переменную. Глобальным переменным всегда предшествует знак доллара ($).

Локальные переменные — локальные переменные — это переменные, которые определены в методе. Локальные переменные недоступны вне метода. Вы увидите более подробную информацию о методе в следующей главе. Локальные переменные начинаются со строчной буквы или _.

Переменные экземпляра — переменные экземпляра доступны в разных методах для любого конкретного экземпляра или объекта. Это означает, что переменные экземпляра меняются от объекта к объекту. Переменным экземпляра предшествует знак (@), за которым следует имя переменной.

Переменные класса — переменные класса доступны для разных объектов. Переменная класса принадлежит классу и является характеристикой класса. Им предшествует знак @@ и сопровождается именем переменной.

Глобальные переменные — переменные класса не доступны для разных классов. Если вы хотите иметь единственную переменную, которая доступна для всех классов, вам нужно определить глобальную переменную. Глобальным переменным всегда предшествует знак доллара ($).

пример

Используя переменную класса @@ no_of_customers, вы можете определить количество создаваемых объектов. Это позволяет при определении количества клиентов.

class Customer
   @@no_of_customers = 0
end

Создание объектов в Ruby с использованием нового метода

Объекты являются экземплярами класса. Теперь вы узнаете, как создавать объекты класса в Ruby. Вы можете создавать объекты в Ruby, используя метод new класса.

Метод new является уникальным типом метода, который предопределен в библиотеке Ruby. Новый метод принадлежит методам класса .

Вот пример для создания двух объектов cust1 и cust2 класса Customer —

cust1 = Customer. new
cust2 = Customer. new

Здесь cust1 и cust2 являются именами двух объектов. Вы пишете имя объекта, за которым следует знак равенства (=), после которого следует имя класса. Затем следует оператор точки и ключевое слово new .

Пользовательский метод для создания объектов Ruby

Вы можете передать параметры в метод new, и эти параметры можно использовать для инициализации переменных класса.

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

Метод initialize — это метод специального типа, который будет выполняться при вызове нового метода класса с параметрами.

Вот пример для создания метода инициализации —

class Customer
   @@no_of_customers = 0
   def initialize(id, name, addr)
      @cust_id = id
      @cust_name = name
      @cust_addr = addr
   end
end

В этом примере вы объявляете метод initialize с id, name и addr в качестве локальных переменных. Здесь def и end используются для определения инициализации метода Ruby. Вы узнаете больше о методах в следующих главах.

В методе initialize вы передаете значения этих локальных переменных в переменные экземпляра @cust_id, @cust_name и @cust_addr. Здесь локальные переменные содержат значения, которые передаются вместе с новым методом.

Теперь вы можете создавать объекты следующим образом —

cust1 = Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2 = Customer.new("2", "Poul", "New Empire road, Khandala")

Функции-члены в классе Ruby

В Ruby функции называются методами. Каждый метод в классе начинается с ключевого слова def, за которым следует имя метода.

Имя метода всегда предпочитается строчными буквами . Вы заканчиваете метод в Ruby, используя ключевое слово end .

Вот пример для определения метода Ruby —

class Sample
   def function
      statement 1
      statement 2
   end
end

Здесь оператор 1 и оператор 2 являются частью тела функции метода внутри класса Sample. Этими утверждениями могут быть любые допустимые операторы Ruby. Например, мы можем поместить метод put для печати Hello Ruby следующим образом:

class Sample
   def hello
      puts "Hello Ruby!"
   end
end

Теперь в следующем примере создайте один объект класса Sample и вызовите метод hello и посмотрите результат —

Live Demo

#!/usr/bin/ruby

class Sample
   def hello
      puts "Hello Ruby!"
   end
end

# Now using above class to create objects
object = Sample. new
object.hello

Это даст следующий результат —

Hello Ruby!

Простое тематическое исследование

Вот пример, если вы хотите больше практиковаться с классом и предметами.

Учебный пример Ruby Class