Ruby OOPs概念(面向对象编程)

本文概述

  • Ruby类
  • Ruby对象
  • Ruby方法
  • Ruby继承
  • Ruby构造函数
Ruby是一种真正的面向对象语言, 可以嵌入到超文本标记语言中。 Ruby中的一切都是对象。所有数字, 字符串甚至类都是对象。整个Ruby语言基本上都是基于对象和数据的概念构建的。
OOP是一种编程概念, 它使用对象及其相互作用来设计应用程序和计算机程序。
【Ruby OOPs概念(面向对象编程)】以下是OOP中的一些基本概念:
封装形式
多态性
遗产
抽象化
封装:它将类的实现细节从其他对象中隐藏出来, 因此, 该类的其余部分无法使用该类。其主要目的是保护数据免遭数据操纵。
多态性:表示不同数据输入以不同方式表示运算符或函数的能力。
继承:它从预定义的类创建新的类。新类继承其父类(称为超类)的行为。这样, 可以使预定义的类更加可重用和有用。
抽象:它通过对适合该问题的类进行建模来隐藏类的复杂性。
Ruby类 Ruby类定义数据类型的蓝图。它定义了该类名的含义。
用类关键字定义类, 后跟类名称, 并以end关键字结束。
按照惯例, 班级名称必须以大写字母开头。具有一个以上单词的类名与每个单词大写且没有分隔字符一起运行。
建立课程
例:
我们将使用以下命令创建Java类:
class Greeter

Ruby OOPs概念(面向对象编程)

文章图片
创建了一个新的类Java。 @name是可用于Java类的所有方法的实例变量。 say_welcome和say_bye使用它。
Ruby对象 在Ruby中, 一切都是对象。当我们创建对象时, 它们通过方法进行通信。因此, 对象是数据和方法的组合。
要创建对象, 首先, 我们定义一个类。单个类可用于创建许多对象。使用new关键字声明对象。
创建对象
例:
我们有一个名为Java的类。现在, 让我们创建一个对象java并将其与以下命令配合使用,
java = Java.new("John")

Ruby OOPs概念(面向对象编程)

文章图片
创建Java对象后, 它将使用John作为名称。
Ruby方法 方法是在类主体内定义的函数。 Ruby中的数据只能通过方法访问。在调用方法时, Ruby会遵循以下路径。为了找出方法查找链, 我们可以使用祖先方法。
定义方法
用def关键字定义方法, 并以end关键字结束。
我们正在定义一个方法名称, 它将显示以下消息。
Ruby OOPs概念(面向对象编程)

文章图片
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 OOPs概念(面向对象编程)

文章图片
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类的构造函数。
从最后两行, 我们实例化两个类。
输出
Ruby OOPs概念(面向对象编程)

文章图片
在输出中, 首先创建Parent类, 派生的Child类也调用其父类的构造函数, 然后创建Child类。
Ruby构造函数 创建对象时会自动调用构造函数。它们不返回任何值。在Ruby中, 它们称为Initialize。
构造函数的主要目的是初始化对象的状态。它们不能被继承。父对象构造函数用super方法调用。
例:
#!/usr/bin/ruby class Parent def initialize puts "Parent is created" end end Parent.new

输出
Ruby OOPs概念(面向对象编程)

文章图片

    推荐阅读