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 Customerend
使用关键字 end 终止一个类. 类中的所有数据成员都在类定义和 end 关键字之间.
Ruby类中的变量
Ruby提供四种类型的变量 :
局部变量 : 局部变量是方法中定义的变量.方法之外的局部变量不可用.您将在后续章节中看到有关方法的更多详细信息.局部变量以小写字母或_开头.
实例变量 : 实例变量可用于任何特定实例或对象的方法.这意味着实例变量从一个对象变为另一个对象.实例变量前面是at符号(@),后跟变量名称.
类变量 : 类变量可用于不同的对象.类变量属于类,是类的特征.它们之前是sign@@然后是变量名.
全局变量 : 类变量不适用于各类.如果您想拥有一个跨类可用的单个变量,则需要定义一个全局变量.全局变量总是以美元符号($)开头.
示例
使用类变量@@ no_of_customers,可以确定正在创建的对象数.这可以导出客户数量.
class Customer @@no_of_customers = 0end
使用新方法在Ruby中创建对象
对象是类的实例.您现在将学习如何在Ruby中创建类的对象.您可以使用类的方法 new 在Ruby中创建对象.
方法 new 是一种独特的方法,这是在Ruby库中预定义的.新方法属于类方法.
以下是创建Customer&minus类的两个对象cust1和cust2的示例;
cust1 = Customer. newcust2 = 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 endend
在此示例中,使用 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 endend
这里,语句1 和语句2 是类中函数的主体的一部分样品.这些语句可以是任何有效的Ruby语句.例如,我们可以使用方法 puts 来打印 Hello Ruby ,如下所示 :
class Sample def hello puts "Hello Ruby!" endend
现在在下面的示例中,创建一个Sample类的对象并调用 hello 方法并查看结果 :
#!/usr/bin/rubyclass Sample def hello puts "Hello Ruby!" endend# Now using above class to create objectsobject = Sample. newobject.hello
这将产生以下结果 :
Hello Ruby!
简单案例研究
如果您想对类和对象进行更多练习,这是一个案例研究.
Ruby Class Case Study