本文概述
Ruby是一种真正的面向对象语言, 可以嵌入到超文本标记语言中。 Ruby中的一切都是对象。所有数字, 字符串甚至类都是对象。整个Ruby语言基本上都是基于对象和数据的概念构建的。
OOP是一种编程概念, 它使用对象及其相互作用来设计应用程序和计算机程序。
以下是OOP中的一些基本概念:
封装形式
多态性
遗产
抽象化
封装:它将类的实现细节从其他对象中隐藏出来, 因此, 该类的其余部分无法使用该类。其主要目的是保护数据免遭数据操纵。
多态性:表示不同数据输入以不同方式表示运算符或函数的能力。
继承:它从预定义的类创建新的类。新类继承其父类(称为超类)的行为。这样, 可以使预定义的类更加可重用和有用。
抽象:它通过对适合该问题的类进行建模来隐藏类的复杂性。
Ruby类
Ruby类定义数据类型的蓝图。它定义了该类名的含义。
用类关键字定义类, 后跟类名称, 并以end关键字结束。
按照惯例, 班级名称必须以大写字母开头。具有一个以上单词的类名与每个单词大写且没有分隔字符一起运行。
建立课程
例:
我们将使用以下命令创建Java类:
class Greeter
创建了一个新的类Java。 @name是可用于Java类的所有方法的实例变量。 say_welcome和say_bye使用它。
Ruby对象
在Ruby中, 一切都是对象。当我们创建对象时, 它们通过方法进行通信。因此, 对象是数据和方法的组合。
要创建对象, 首先, 我们定义一个类。单个类可用于创建许多对象。使用new关键字声明对象。
创建对象
例:
我们有一个名为Java的类。现在, 让我们创建一个对象java并将其与以下命令配合使用,
java = Java.new("John")
创建Java对象后, 它将使用John作为名称。
Ruby方法
方法是在类主体内定义的函数。 Ruby中的数据只能通过方法访问。在调用方法时, Ruby会遵循以下路径。为了找出方法查找链, 我们可以使用祖先方法。
定义方法
用def关键字定义方法, 并以end关键字结束。
我们正在定义一个方法名称, 它将显示以下消息。
def关键字开始方法名称的定义。然后我们写出方法的主体。最后一行表示已定义方法。
实例方法
实例方法也用def关键字定义, 并且只能在类实例中使用。
例:
#!/usr/bin/ruby -w
# define a class
class Circle
# constructor method
def initialize(r)
@radius = r
end
# instance method
def getArea
3.14 * @radius * @radius
end
end
# create an object
circle = Circle.new(2)
# call instance methods
a = circle.getArea()
puts "Area of the box is : #{a}"
输出
Ruby继承
在继承中, 我们使用预定义的类创建新类。新创建的类称为派生类, 从中派生它们的类称为基类。通过继承, 可以再次重用代码, 从而降低了程序的复杂性。
Ruby不支持多级继承。相反, 它支持mixin。
在Ruby中, <字符用于创建子类。语法如下所示:
parentClass < subClass
例:
#!/usr/bin/ruby
class Parent
def initialize
puts "Parent class created"
end
end
class Child < Parent
def initialize
super
puts "Child class created"
end
end
Parent.new
Child.new
在上面的示例中, 创建了两个类。一种是基础父类, 另一种是派生的子类。
super方法调用Parent类的构造函数。
从最后两行, 我们实例化两个类。
输出
在输出中, 首先创建Parent类, 派生的Child类也调用其父类的构造函数, 然后创建Child类。
Ruby构造函数
创建对象时会自动调用构造函数。它们不返回任何值。在Ruby中, 它们称为Initialize。
构造函数的主要目的是初始化对象的状态。它们不能被继承。父对象构造函数用super方法调用。
例:
#!/usr/bin/ruby
class Parent
def initialize
puts "Parent is created"
end
end
Parent.new
输出
评论前必须登录!
注册