个性化阅读
专注于IT技术分析

Ruby OOPs概念:面向对象编程

本文概述

Ruby是一种真正的面向对象语言, 可以嵌入到超文本标记语言中。 Ruby中的一切都是对象。所有数字, 字符串甚至类都是对象。整个Ruby语言基本上都是基于对象和数据的概念构建的。

OOP是一种编程概念, 它使用对象及其相互作用来设计应用程序和计算机程序。

以下是OOP中的一些基本概念:

封装形式

多态性

遗产

抽象化

封装:它将类的实现细节从其他对象中隐藏出来, 因此, 该类的其余部分无法使用该类。其主要目的是保护数据免遭数据操纵。

多态性:表示不同数据输入以不同方式表示运算符或函数的能力。

继承:它从预定义的类创建新的类。新类继承其父类(称为超类)的行为。这样, 可以使预定义的类更加可重用和有用。

抽象:它通过对适合该问题的类进行建模来隐藏类的复杂性。


Ruby类

Ruby类定义数据类型的蓝图。它定义了该类名的含义。

用类关键字定义类, 后跟类名称, 并以end关键字结束。

按照惯例, 班级名称必须以大写字母开头。具有一个以上单词的类名与每个单词大写且没有分隔字符一起运行。

建立课程

例:

我们将使用以下命令创建Java类:

class Greeter
Ruby Oops概念1

创建了一个新的类Java。 @name是可用于Java类的所有方法的实例变量。 say_welcome和say_bye使用它。


Ruby对象

在Ruby中, 一切都是对象。当我们创建对象时, 它们通过方法进行通信。因此, 对象是数据和方法的组合。

要创建对象, 首先, 我们定义一个类。单个类可用于创建许多对象。使用new关键字声明对象。

创建对象

例:

我们有一个名为Java的类。现在, 让我们创建一个对象java并将其与以下命令配合使用,

java = Java.new("John")
Ruby Oops概念2

创建Java对象后, 它将使用John作为名称。


Ruby方法

方法是在类主体内定义的函数。 Ruby中的数据只能通过方法访问。在调用方法时, Ruby会遵循以下路径。为了找出方法查找链, 我们可以使用祖先方法。

定义方法

用def关键字定义方法, 并以end关键字结束。

我们正在定义一个方法名称, 它将显示以下消息。

Ruby Oops概念3

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概念4

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概念5

在输出中, 首先创建Parent类, 派生的Child类也调用其父类的构造函数, 然后创建Child类。


Ruby构造函数

创建对象时会自动调用构造函数。它们不返回任何值。在Ruby中, 它们称为Initialize。

构造函数的主要目的是初始化对象的状态。它们不能被继承。父对象构造函数用super方法调用。

例:

#!/usr/bin/ruby 

class Parent 

    def initialize 
        puts "Parent is created" 
    end 

end 

Parent.new

输出

Ruby Oops概念6

赞(0)
未经允许不得转载:srcmini » Ruby OOPs概念:面向对象编程

评论 抢沙发

评论前必须登录!