📅  最后修改于: 2020-10-16 05:47:37             🧑  作者: Mango
Ruby是一种完美的面向对象编程语言。面向对象编程语言的功能包括-
这些功能已在面向对象的Ruby一章中进行了讨论。
面向对象的程序涉及类和对象。类是从中创建单个对象的蓝图。用面向对象的术语来说,您的自行车是称为自行车的一类对象的实例。
以任何车辆为例。它包括车轮,马力以及燃油或汽油箱的容量。这些特征构成了Vehicle类的数据成员。您可以借助这些特性将一种车辆与另一种车辆区分开。
车辆还可以具有某些功能,例如停止,驾驶和超速行驶。甚至这些功能也构成了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升。同样,一辆汽车有四个车轮,马力为200,油箱为汽油,容量为25升。
要使用Ruby实现面向对象的编程,您首先需要学习如何在Ruby中创建对象和类。
Ruby中的类始终以关键字class开头,后跟该类的名称。名称应始终以大写字母开头。客户类可以显示为-
class Customer
end
您可以使用关键字end终止类。在类的所有数据成员是类定义和端部之间的关键字。
Ruby提供了四种类型的变量-
局部变量-局部变量是在方法中定义的变量。局部变量在方法之外不可用。您将在下一章中看到有关方法的更多详细信息。局部变量以小写字母或_开头。
实例变量-实例变量可用于任何特定实例或对象的各种方法。这意味着实例变量在对象之间变化。实例变量前面带有at符号(@),后跟变量名称。
类变量-类变量可用于不同的对象。类变量属于该类,是类的特征。它们前面带有符号@@。 ,后跟变量名。
全局变量-类变量在类之间不可用。如果要使用单个变量(可在所有类中使用),则需要定义一个全局变量。全局变量始终以美元符号($)开头。
使用类变量@@ no_of_customers,可以确定正在创建的对象数。这使得能够得出客户数量。
class Customer
@@no_of_customers = 0
end
对象是类的实例。现在,您将学习如何在Ruby中创建类的对象。您可以使用类的new方法在Ruby中创建对象。
new方法是一种独特的方法类型,它在Ruby库中预定义。新方法属于类方法。
这是创建类Customer的两个对象cust1和cust2的示例-
cust1 = Customer. new
cust2 = Customer. new
在这里,cust1和cust2是两个对象的名称。您写对象名称,后跟等号(=),之后是类名称。然后,将出现点运算符和关键字new 。
您可以将参数传递给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和addr声明为局部变量的initialize方法。在这里, 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中,函数称为方法。在课程开始与关键词的每个方法高清其次是方法名。
方法名称始终以小写字母表示。您可以使用关键字end结束Ruby中的方法。
这是定义Ruby方法的示例-
class Sample
def function
statement 1
statement 2
end
end
在这里,语句1和2是类Sample中方法函数主体的一部分。这些语句可以是任何有效的Ruby语句。例如,我们可以把一个方法puts来打印你好红宝石如下-
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!
如果您想对类和对象进行更多练习,这是一个案例研究。