三白草

注册

 

发新话题 回复该主题

Ruby类案例 [复制链接]

1#
Ruby类案例

下面将创建一个名为Customer的Ruby类,您将声明两个方法:

display_details:该方法用于显示客户的详细信息。

total_no_of_customers:该方法用于显示在系统中创建的客户总数量。

#!/usr/bin/rubyclassCustomer

no_of_customers=0definitialize(id,name,addr)

cust_id=id

cust_name=name

cust_addr=addrenddefdisplay_details()puts"Customerid#

cust_id"puts"Customername#

cust_name"puts"Customeraddress#

cust_addr"enddeftotal_no_of_customers()

no_of_customers+=1puts"Totalnumberofcustomers

no_of_customers"endend

display_details方法包含了三个puts语句,显示了客户ID、客户名字和客户地址。其中,puts语句:

puts"Customerid#

cust_id"

将在一个单行上显示文本Customerid,后跟变量

cust_id的值。

当您想要在一个单行上显示实例变量的文本和值时,您需要在puts语句的变量名前面放置符号(#)。文本和带有符号(#)的实例变量应使用双引号标记。

第二个方法,total_no_of_customers,包含了类变量

no_of_customers。表达式

no_of_customers+=1在每次调用方法total_no_of_customers时,把变量no_of_customers加1。通过这种方式,您将得到类变量中的客户总数量。

现在创建两个客户,如下所示:

cust1=Customer.new("1","John","WisdomApartments,Ludhiya")cust2=Customer.new("2","Poul","NewEmpireroad,Khandala")

在这里,我们创建了Customer类的两个对象,cust1和cust2,并向new方法传递必要的参数。当initialize方法被调用时,对象的必要属性被初始化。

一旦对象被创建,您需要使用两个对象来调用类的方法。如果您想要调用方法或任何数据成员,您可以编写代码,如下所示:

cust1.display_details()cust1.total_no_of_customers()

对象名称后总是跟着一个点号,接着是方法名称或数据成员。我们已经看到如何使用cust1对象调用两个方法。使用cust2对象,您也可以调用两个方法,如下所示:

cust2.display_details()cust2.total_no_of_customers()

保存并执行代码

现在,把所有的源代码放在main.rb文件中,如下所示:

#!/usr/bin/rubyclassCustomer

no_of_customers=0definitialize(id,name,addr)

cust_id=id

cust_name=name

cust_addr=addrenddefdisplay_details()puts"Customerid#

cust_id"puts"Customername#

cust_name"puts"Customeraddress#

cust_addr"enddeftotal_no_of_customers()

no_of_customers+=1puts"Totalnumberofcustomers

no_of_customers"endend#创建对象cust1=Customer.new("1","John","WisdomApartments,Ludhiya")cust2=Customer.new("2","Poul","NewEmpireroad,Khandala")#调用方法cust1.display_details()cust1.total_no_of_customers()cust2.display_details()cust2.total_no_of_customers()

接着,运行程序,如下所示:

$rubymain.rb

这将产生以下结果:

Customerid1CustomernameJohnCustomeraddressWisdomApartments,LudhiyaTotalnumberofcustomers:1Customerid2CustomernamePoulCustomeraddressNewEmpireroad,KhandalaTotalnumberofcustomers:2

预览时标签不可点收录于话题#个上一篇下一篇
分享 转发
TOP
发新话题 回复该主题