Ruby是一种强大的编程语言,提供了现代的功能和工具。其中一个特点是支持面向对象编程,包括封装多态性、抽象、继承等等。
本教程将讨论面向对象编程的一个关键概念:对象和类。
什么是Ruby类和O bjects?
让我们从类开始。
类是创建对象和提供价值实现的蓝图,包括变量、方法、属性等等。
另一方面,一个对象是一个类的单一实例。以一辆汽车为例。我们可以创建一个描述建造汽车的蓝图的类。这个类的属性可以是所有汽车的共同点。
- 一个发动机
- 一个门
- 一个模型
- 制造商
汽车类也可以包括方法,这些方法是类对象可以执行的动作。一个例子是,汽车可以点火、加速、停车,等等。
当你需要创建只有不同方面的类似对象时,类是非常方便的。与其为奔驰汽车、布加迪汽车、特斯拉汽车等声明一个代码块,你可以创建一个由每个模型引用的单一类。
如何在Ruby中创建一个类和对象
Ruby是一种不可思议的语言,而且非常容易使用。它为创建一个类提供了一个普遍简单的语法。
一般的语法是。
class ClassName
# BLOCK
end
我们首先调用class关键字,然后是我们想要创建的类的名称。类的名字以大写字母开始,下面的名字则使用CamelCase。
在类的内部,我们定义了该类所需要的所有变量和方法。
我们使用end关键字来关闭类的代码。
例子
让我们来看看一个汽车类的例子。
class Car
def initialize(engine, name, year)
@engine = engine
@name = name
@year = year
end
def ignite
puts "Ignition!"
end
def stop
puts "Stopping vehicle"
end
def accelerate(target_speed)
@target_speed = target_speed
puts "Car accelerating at #{target_speed} m/h"
end
end
f = Car.new("a108d", "F A-Class", 2010 )
g = Car.new("00Ca", "Zero G-8", 2011)
h = Car.new("777d", "G Potato", 2022)
在上面的代码中,我们首先定义了汽车类。在这个类中,我们定义了initialize方法,这是Ruby中的一种特殊类型的方法,用于用所需的参数创建类的调用实例。initialize方法充当了new的构造函数。
在初始化方法中,我们传递汽车的发动机、名称和制造年份。然后我们对汽车进行一些操作,包括点火、加速和停车。
最后,我们创建一个汽车类的实例。我们把这称为实例化,因为我们创建了一个类的实例。
我们传递初始化方法的参数,它创建了三种独特的汽车类型。
使用类方法
在上面的例子中,我们创建了一个有各种方法的类,但还没有使用它们。要使用一个方法,我们只需输入对象的名称,然后是句号和方法的名称。
语法是。
my_object.method
让我们来看看前面的例子;要点燃f车,我们可以这样做。
// Refer code above
f = Car.new("a108d", "F A-Class", 2010 )
g = Car.new("00Ca", "Zero G-8", 2011)
h = Car.new("777d", "G Potato", 2022)
f.ignite
如果我们运行上面的代码,我们应该看到汽车成功点火,打印出字符串 "Ignition!"
来自initialize方法的每个部分都像一个命令,定义了从该类创建的对象可以做的动作。
获取源类
Ruby中的每个类型都是一个类的对象。你可以使用class方法查看对象是从哪个类中创建的。
比如说
class Car
def initialize(engine, name, year)
@engine = engine
@name = name
@year = year
end
def ignite
puts "Ignition!"
end
def stop
puts "Stopping vehicle"
end
def accelerate(target_speed)
@target_speed = target_speed
puts "Car accelerating at #{target_speed} m/h"
end
end
f = Car.new("a108d", "F A-Class", 2010 )
puts "hello".class
puts 10.class
puts 11.023.class
puts f.class
一旦我们执行代码,我们应该看到字符串、整数、浮点和汽车的类为。
String
Integer
Float
Car
总结
在本教程中,我们学习了Ruby中使用类和对象的面向对象编程的基础知识。值得注意的是,OOP是一个庞大的话题。请查看其他资源以了解更多。