Ruby是一个完美的面向对象编程语言。面向对象编程语言的特点包括 -
这些特性已经在面向对象Ruby的一章中探讨过了。
面向对象的程序涉及类和对象。类是创建单个对象的蓝图。在面向对象的术语中,我们说你的自行车是被称为自行车的物体的一个实例。
以任何车辆为例。它包括轮子,马力,燃料或燃气罐容量。这些特征形成了车辆类的数据成员。借助这些特点,您可以区分一辆车与另一辆。
车辆还可以具有某些功能,例如停止,驾驶和加速。即使这些功能也构成了Vehicle类的数据成员。因此,您可以将类定义为特征和功能的组合。
一类车可以定义为 -
Class Vehicle { Number no_of_wheels Number horsepower Characters type_of_tank Number Capacity Function speeding { } Function driving { } Function halting { } }
通过为这些数据成员分配不同的值,您可以形成类Vehicle的几个实例。例如,一架飞机有三个轮子,马力为1,000,燃料为坦克类型,容量为100升。同样的方式,一辆汽车有四个轮子,二十马力,燃气作为坦克的类型,容量为25升。
要通过使用Ruby实现面向对象的编程,您需要首先学习如何在Ruby中创建对象和类。
Ruby中的类始终以关键字类和类的名称开头。这个名字应该始终是在首都的首都。课程客户可以显示为 -
class Customer end
您可以使用关键字结束终止类。类中的所有数据成员都在类定义和结束关键字之间。
Ruby提供了四种类型的变量 -
局部变量 - 局部变量是方法中定义的变量。局部变量在方法之外是不可用的。您将在后续章节中看到关于方法的更多细节。局部变量以小写字母或_开头。
实例变量 - 实例变量可用于任何特定实例或对象的方法。这意味着实例变量从对象变化。实例变量前面带有at符号(@),后跟变量名称。
类变量 - 类变量可用于不同的对象。类变量属于类,是类的特征。它们之前带有@@,后跟变量名。
全局变量 - 类变量在类之间不可用。如果你想要有一个单独的变量,这个变量可以跨类来使用,你需要定义一个全局变量。全局变量始终位于美元符号($)之前。
使用类变量@@ no_of_customers,可以确定正在创建的对象数。这样可以获得客户数量。
class Customer @@no_of_customers = 0 end
对象是类的实例。现在您将学习如何在Ruby中创建类的对象。您可以通过使用新的类的方法在Ruby中创建对象。
方法new是一种独特的方法,它是在Ruby库中预定义的。新方法属于类方法。
以下是创建Customer类的两个对象cust1和cust2的示例:
cust1 = Customer. new cust2 = Customer. new
在这里,cust1和cust2是两个对象的名称。您写的对象名称后跟等号(=),之后类名将跟随。然后,点运算符和关键字new将跟随。
您可以将参数传递给方法new,这些参数可用于初始化类变量。
当您计划使用参数声明新方法时,需要在创建类时声明方法initialize。
初始化方法是一种特殊类型的方法中,当将要执行的新的类的方法被调用的参数。
以下是创建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和addr来声明initialize方法作为局部变量。这里,def和end用于定义Ruby方法初始化。您将在后续章节中更多地了解方法。
在初始化方法中,将这些局部变量的值传递给实例变量@cust_id,@cust_name和@cust_addr。这里局部变量包含与新方法一起传递的值。
现在,您可以创建如下对象 -
cust1 = Customer.new("1", "John", "Wisdom Apartments, Ludhiya") cust2 = Customer.new("2", "Poul", "New Empire road, Khandala")
在Ruby中,函数称为方法。类中的每个方法都以关键字def开头,后跟方法名称。
方法名称始终以小写字母表示。您可以使用关键字end在Ruby中结束一个方法。
以下是定义Ruby方法的示例 -
class Sample def function statement 1 statement 2 end end
这里,语句1和语句2是类Sample内部方法函数的一部分。这些数据可以是任何有效的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!
这是一个案例研究,如果你想做更多的练习与类和对象。