Ruby - 类和对象

Ruby是一种完美的面向对象编程语言.面向对象编程语言的功能包括 :

  • 数据封装

  • 数据抽象

  • 多态性

  • 继承

这些功能已在章面向对象的Ruby .

面向对象的程序涉及类和对象.类是创建单个对象的蓝图.在面向对象的术语中,我们说你的自行车类对象的一个实例,称为自行车.

拿任何车辆的例子.它包括轮子,马力和燃料或油箱容量.这些特征构成了Vehicle类的数据成员.借助这些特性,您可以将一辆车与另一辆车区分开来.

车辆也可以具有某些功能,例如停车,驾驶和超速.甚至这些函数也构成了Vehicle类的数据成员.因此,您可以将类定义为特征和函数的组合.

类Vehicle可以定义为 :

Class Vehicle {

   Number no_of_wheels
   Number horsepower
   Characters type_of_tank
   Number Capacity
   Function speeding {
   }
   
   Function driving {
   }
   
   Function halting {
   }
}

通过为这些数据成员分配不同的值,您可以构成Vehicle类的多个实例.例如,一架飞机有三个轮子,马力为1000,燃料为坦克类型,容量为100升.以同样的方式,一辆汽车有四个轮子,马力200,燃气作为坦克类型,容量25升.

用Ruby定义一个类

要使用Ruby实现面向对象的编程,首先需要学习如何在Ruby中创建对象和类.

Ruby中的类总是以关键字开头 class 后跟类的名称.名称应始终为首字母大写.类客户可以显示为 :

class Customer
end

使用关键字 end 终止一个类. 中的所有数据成员都在类定义和 end 关键字之间.

Ruby类中的变量

Ruby提供四种类型的变量 :

  • 局部变量 : 局部变量是方法中定义的变量.方法之外的局部变量不可用.您将在后续章节中看到有关方法的更多详细信息.局部变量以小写字母或_开头.

  • 实例变量 : 实例变量可用于任何特定实例或对象的方法.这意味着实例变量从一个对象变为另一个对象.实例变量前面是at符号(@),后跟变量名称.

  • 类变量 : 类变量可用于不同的对象.类变量属于类,是类的特征.它们之前是sign@@然后是变量名.

  • 全局变量 : 类变量不适用于各类.如果您想拥有一个跨类可用的单个变量,则需要定义一个全局变量.全局变量总是以美元符号($)开头.

示例

使用类变量@@ no_of_customers,可以确定正在创建的对象数.这可以导出客户数量.

class Customer
   @@no_of_customers = 0
end

使用新方法在Ruby中创建对象

对象是类的实例.您现在将学习如何在Ruby中创建类的对象.您可以使用类的方法 new 在Ruby中创建对象.

方法 new 是一种独特的方法,这是在Ruby库中预定义的.新方法属于方法.

以下是创建Customer&minus类的两个对象cust1和cust2的示例;

cust1 = Customer. new
cust2 = Customer. new

这里,cust1和cust2是两个对象的名称.您编写对象名称后跟等号(=),之后将出现类名称.然后,点运算符和关键字 new 将跟随.

创建Ruby对象的自定义方法

你可以通过方法 new 的参数和那些参数可用于初始化类变量.

当您计划使用参数声明 new 方法时,你需要在创建类时声明方法 initialize .

initialize 方法是一种特殊的方法,这将在使用参数调用类的 new 方法时执行.

以下是创建initialize方法的示例 :

class Customer
   @@no_of_customers = 0
   def initialize(id, name, addr)
      @cust_id = id
      @cust_name = name
      @cust_addr = addr
   end
end

在此示例中,使用 id,name ,a声明 initialize 方法nd addr 作为局部变量.这里, def end 用于定义Ruby方法 initialize .您将在后续章节中了解有关方法的更多信息.

initialize 方法中,将这些局部变量的值传递给实例变量@ cust_id, @ cust_name和@ cust_addr.这里局部变量包含与新方法一起传递的值.

现在,您可以创建对象如下 :

 
 cust1 = Customer.new("1","John","Wisdom Apartments,Ludhiya")
 cust2 = Customer.new("2","Poul","New Empire road" ,Khandala")

Ruby类中的成员函数

在Ruby中,函数称为方法. 中的每个方法都以关键字 def 开头,后跟方法名称.

方法名称始终优先于小写字母.您可以使用关键字 end 结束Ruby中的方法.

以下是定义Ruby方法的示例 :

class Sample
   def function
      statement 1
      statement 2
   end
end

这里,语句1 语句2 是类中函数的主体的一部分样品.这些语句可以是任何有效的Ruby语句.例如,我们可以使用方法 puts 来打印 Hello Ruby ,如下所示 :

class Sample
   def hello
      puts "Hello Ruby!"
   end
end

现在在下面的示例中,创建一个Sample类的对象并调用 hello 方法并查看结果 :

#!/usr/bin/ruby

class Sample
   def hello
      puts "Hello Ruby!"
   end
end

# Now using above class to create objects
object = Sample. new
object.hello

这将产生以下结果 :

Hello Ruby!

简单案例研究

如果您想对类和对象进行更多练习,这是一个案例研究.

Ruby Class Case Study