红宝石 |类和对象
Ruby 是一种理想的面向对象编程语言。面向对象编程语言的特性包括数据封装、多态、继承、数据抽象、运算符重载等。在面向对象编程中类和对象起着重要的作用。
类是创建对象的蓝图。该对象也称为类的实例。例如,动物是一个类,哺乳动物、鸟类、鱼类、爬行动物和两栖动物是该类的实例。同样,销售部门是类,类的对象是销售数据、销售经理和秘书。
在 Ruby 中定义一个类:
在 Ruby 中,可以轻松地创建类和对象。只需编写 class 关键字,后跟类的名称。类名的第一个字母应该是大写字母。
句法:
class Class_name
end
一个类由end 关键字终止,所有数据成员都位于类定义和 end 关键字之间。
例子:
# class name is Animal
class Animal
# class variables
@@type_of_animal = 4
@@no_of_animal = 3
end
在 Ruby 中使用“new”方法创建对象:
类和对象是 Ruby 中最重要的部分。就像类对象也很容易创建一样,我们可以从一个类中创建多个对象。在 Ruby 中,对象是由new 方法创建的。
句法:
object_name = Class_name.new
例子:
# class name is box
class Box
# class variable
@@No_of_color = 3
end
# Two Objects of Box class
sbox = Box.new
nbox = Box.new
这里 Box 是类的名称, No_of_color 是类的变量。 sbox和nbox是 box 类的两个对象。您使用 (=) 后跟类名、点运算符和新方法。
在 Ruby 中定义方法:
在 Ruby 中,成员函数被称为方法。每个方法都由def 关键字定义,后跟方法名称。方法的名称总是小写,方法以end 关键字结尾。在 Ruby 中,每个类和方法都以 end 关键字结尾。
句法:
def method_name
# statements or code to be executed
end
例子:
Ruby
# Ruby program to illustrate
# the defining of methods
#!/usr/bin/ruby
# defining class Vehicle
class GFG
# defining method
def geeks
# printing result
puts "Hello Geeks!"
# end of method
end
# end of class GFG
end
# creating object
obj = GFG.new
# calling method using object
obj.geeks
Ruby
# Ruby program to illustrate the passing
# parameters to new method
#!/usr/bin/ruby
# defining class Vehicle
class Vehicle
# initialize method
def initialize(id, color, name)
# variables
@veh_id = id
@veh_color = color
@veh_name = name
# displaying values
puts "ID is: #@veh_id"
puts "Color is: #@veh_color"
puts "Name is: #@veh_name"
puts "\n"
end
end
# Creating objects and passing parameters
# to new method
xveh = Vehicle. new("1", "Red", "ABC")
yveh = Vehicle. new("2", "Black", "XYZ")
输出:
Hello Geeks!
将参数传递给新方法:
用户可以将任意数量的参数传递给用于初始化类变量的“新方法”。在将参数传递给“新方法”时,必须在类创建时声明一个初始化方法。 initialize 方法是一个特定的方法,在带参数调用新方法时执行。
例子:
红宝石
# Ruby program to illustrate the passing
# parameters to new method
#!/usr/bin/ruby
# defining class Vehicle
class Vehicle
# initialize method
def initialize(id, color, name)
# variables
@veh_id = id
@veh_color = color
@veh_name = name
# displaying values
puts "ID is: #@veh_id"
puts "Color is: #@veh_color"
puts "Name is: #@veh_name"
puts "\n"
end
end
# Creating objects and passing parameters
# to new method
xveh = Vehicle. new("1", "Red", "ABC")
yveh = Vehicle. new("2", "Black", "XYZ")
输出:
ID is: 1
Color is: Red
Name is: ABC
ID is: 2
Color is: Black
Name is: XYZ
解释:这里的 Vehicle 是类名。 def是一个关键字,用于在 Ruby 中定义“初始化”方法。每当创建新对象时都会调用它。每当调用新的类方法时,它总是调用初始化实例方法。 initialize方法就像一个构造函数,每当创建新对象时都会调用initialize 方法。 id、color、name是初始化方法中的参数, @veh_id @veh_color、@veh_name是初始化方法中的局部变量,借助这些局部变量,我们将值传递给新方法。 “new”方法中的参数总是用双引号括起来。