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  
  
 
   
 
  输出: