Ruby OOPs 概念
Ruby OOP 概念
Ruby 是一种真正的面向对象语言,可以嵌入到超文本标记语言中。 Ruby 中的一切都是对象。所有的数字、字符串甚至类都是一个对象。整个 Ruby 语言基本上建立在对象和数据的概念之上。
OOP 是一种编程概念,它使用对象及其交互来设计应用程序和计算机程序。
以下是一些OOP 中的基本概念:
封装
多态性
继承
抽象
封装: 它向其他对象隐藏了一个类的实现细节,因为该类对其余代码不可用。其主要目的是保护数据免受数据操纵。
多态性: 它是针对不同的数据输入以不同方式表示运算符或函数的能力。
继承: 它从预定义的类中创建新类。新类继承其父类的行为,称为超类。通过这种方式,可以使预定义的类更具可重用性和实用性。
摘要: 它通过对适合问题的类进行建模来隐藏类的复杂性。
Ruby 类
Ruby 类定义数据类型的蓝图。它定义了该类名的含义。
一个类是用class关键字定义的,后跟类名,并以end关键字结束。
按照惯例,类名必须以大写字母开头。一个以上单词的类名连在一起,每个单词大写,没有分隔符。
创建类
示例:
我们将使用以下命令创建一个 Java 类,
创建了一个新类 Java。 @name 是一个实例变量,可用于 Java 类的所有方法。它由 say_welcome 和 say_bye 使用。
Ruby 对象
在 Ruby 中,一切都是对象。当我们创建对象时,它们通过方法进行通信。因此,对象是数据和方法的组合。
要创建一个对象,首先,我们定义一个类。单个类可用于创建多个对象。使用 new 关键字声明对象。
创建对象
示例:
我们有一个名为 Java 的类。现在,让我们创建一个对象 java 并通过以下命令使用它,
java = Java.
new(
"John")
一旦创建了 java 对象,它将使用 John 作为名称。
Ruby 方法
方法是定义在类体内的函数。 Ruby 中的数据只能通过方法访问。当调用方法时,Ruby 会在其中查看跟踪路径。要找出方法查找链,我们可以使用祖先方法。
定义方法
方法以def关键字定义,以end关键字结束。
我们正在定义一个方法 name,它将显示以下消息。
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 不支持多级继承。相反,它支持mixins。
在 Ruby 中, 字符用于创建子类。语法如下所示:
示例:
#!/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类,派生的Child类也调用了其父类的构造函数,然后创建了Child类。
Ruby 构造函数
创建对象时会自动调用构造函数。它们不返回任何值。在 Ruby 中,它们被称为初始化。
构造函数的主要目的是启动对象的状态。它们不能被继承。使用 super 方法调用父对象构造函数。
示例:
#!/usr/bin/ruby
class Parent def initialize puts
"Parent is created" end end Parent.new
输出: