- Ruby基础知识
- Ruby - 主页
- Ruby - 概述
- Ruby - 环境设置
- Ruby - 语法
- Ruby - 类和对象
- Ruby - 变量
- Ruby - 运算符
- Ruby - 评论
- Ruby - IF...ELSE
- Ruby - 循环
- Ruby - 方法
- Ruby - 块
- Ruby - 模块
- Ruby - 字符串
- Ruby - 数组
- Ruby - 哈希
- Ruby - 日期和时间
- Ruby - 范围
- Ruby - 迭代器
- Ruby - 文件 I/O
- Ruby - 例外
Ruby - 类和对象
Ruby 是一种完美的面向对象编程语言。面向对象编程语言的特点包括 -
- 数据封装
- 数据抽象
- 多态性
- 遗产
这些功能已在“面向对象的 Ruby”一章中讨论。
面向对象的程序涉及类和对象。类是创建各个对象的蓝图。用面向对象的术语来说,我们说你的自行车是自行车类对象的一个实例。
以任何车辆为例。它包括车轮、马力和燃油或油箱容量。这些特征构成了 Vehicle 类的数据成员。您可以借助这些特征将一辆车与另一辆车区分开来。
车辆还可以具有某些功能,例如停车、行驶和超速。甚至这些函数也构成了 Vehicle 类的数据成员。因此,您可以将类定义为特征和功能的组合。
车辆类可以定义为 -
Class Vehicle { Number no_of_wheels Number horsepower Characters type_of_tank Number Capacity Function speeding { } Function driving { } Function halting { } }
通过为这些数据成员分配不同的值,您可以形成车辆类的多个实例。例如,一架飞机有三个轮子,马力为1000,燃料为油箱类型,容量为100升。同样,一辆汽车有四个轮子,马力为200,油箱类型为汽油,容量为25升。
在 Ruby 中定义一个类
要使用Ruby实现面向对象编程,您需要首先学习如何在Ruby中创建对象和类。
Ruby 中的类始终以关键字class开头,后跟类的名称。该名称应始终以大写字母开头。类Customer可以显示为 -
class Customer end
您可以使用关键字end来终止一个类。类中的所有数据成员都位于类定义和end关键字之间。
Ruby 类中的变量
Ruby 提供了四种类型的变量 -
局部变量- 局部变量是在方法中定义的变量。局部变量在方法外部不可用。您将在后续章节中看到有关方法的更多详细信息。局部变量以小写字母或 _ 开头。
实例变量- 实例变量可跨任何特定实例或对象的方法使用。这意味着实例变量会随着对象的不同而变化。实例变量前面有 at 符号 (@),后面是变量名称。
类变量- 类变量可跨不同对象使用。类变量属于类,是类的特征。它们前面是符号@@,后面是变量名称。
全局变量- 类变量不可跨类使用。如果您想要跨类使用单个变量,则需要定义一个全局变量。全局变量前面始终带有美元符号 ($)。
例子
使用类变量@@no_of_customers,您可以确定正在创建的对象的数量。这使得能够获得客户数量。
class Customer @@no_of_customers = 0 end
使用 new 方法在 Ruby 中创建对象
对象是类的实例。您现在将学习如何在 Ruby 中创建类的对象。您可以使用类的new方法在 Ruby 中创建对象。
new方法是一种独特的方法类型,它是在 Ruby 库中预定义的。新方法属于类方法。
以下是创建 Customer 类的两个对象 cust1 和 cust2 的示例 -
cust1 = Customer. new cust2 = Customer. new
这里,cust1和cust2是两个对象的名称。您可以编写对象名称,后跟等号 (=),然后再编写类名称。然后是点运算符和关键字new。
创建 Ruby 对象的自定义方法
您可以将参数传递给new方法,这些参数可用于初始化类变量。
当您计划声明带参数的新方法时,您需要在类创建时声明方法initialize 。
初始化方法是一种特殊类型的方法,当带参数调用类的new方法时就会执行该方法。
这是创建初始化方法的示例 -
class Customer @@no_of_customers = 0 def initialize(id, name, addr) @cust_id = id @cust_name = name @cust_addr = addr end end
在此示例中,您将id、name和addr声明为局部变量的初始化方法。这里,def和end用于定义Ruby方法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是类Sample内的方法函数体的一部分。这些语句可以是任何有效的 Ruby 语句。例如,我们可以使用put方法来打印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!
简单案例研究
如果您想对类和对象进行更多练习,这里有一个案例研究。