阅读目录

  • Ruby类案例
  • 保存并执行代码

Ruby类案例

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

  • display_details:该方法用于显示客户的详细信息。
  • total_no_of_customers:该方法用于显示在系统中创建的客户总数量。

实例

#!/usr/bin/rubyclass Customer@@no_of_customers=0def initialize(id, name, addr)@cust_id=id@cust_name=name@cust_addr=addrenddef display_details()puts "Customer id #@cust_id"puts "Customer name #@cust_name"puts "Customer address #@cust_addr"enddef total_no_of_customers()@@no_of_customers += 1puts "Total number of customers: #@@no_of_customers"end
end

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

puts "Customer id #@cust_id"

将在一个单行上显示文本 Customer id 和变量 @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", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2", "Poul", "New Empire road, 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/rubyclass Customer@@no_of_customers=0def initialize(id, name, addr)@cust_id=id@cust_name=name@cust_addr=addrenddef display_details()puts "Customer id #@cust_id"puts "Customer name #@cust_name"puts "Customer address #@cust_addr"enddef total_no_of_customers()@@no_of_customers += 1puts "Total number of customers: #@@no_of_customers"end
end# 创建对象
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2=Customer.new("2", "Poul", "New Empire road, Khandala")# 调用方法
cust1.display_details()
cust1.total_no_of_customers()
cust2.display_details()
cust2.total_no_of_customers()

这将产生以下结果:

Customer id 1
Customer name John
Customer address Wisdom Apartments, Ludhiya
Total number of customers: 1
Customer id 2
Customer name Poul
Customer address New Empire road, Khandala
Total number of customers: 2

转载于:https://www.cnblogs.com/haizhibin1989/p/9160250.html

【Ruby】Ruby 类案例相关推荐

  1. 模块全解======ruby的类是单继承生物、所以出现了module、实现了多继承

    ruby的类是单继承生物.所以出现了module.实现了多继承. 注:模块.常量和类的命名都是以大写字母开头 . 模块引用:       1.如果引用的模块在同一个文件中,则直接使用模块操作      ...

  2. ruby 变量类中范围_Ruby中的类

    ruby 变量类中范围 Ruby类 (Ruby Classes) In the actual world, we have many objects which belong to the same ...

  3. 关于 Ruby Ruby on Rails 的一些书及论坛网站

    关于 Ruby &Ruby on Rails 的一些书及论坛网站 需要用到的一些书 The Ruby Way   Programming Ruby 2nd edition Agile Web ...

  4. 系统集成项目管理工程师 计算专题(下午计算题-进度类-案例分析)

    有兴趣了解或者考软考的小伙伴可以到B站看看这个老师讲的课程. 学计算机的小伙伴有时间可以考一个软考证书,这是中国计算机技术职业资格网官网. 这是广东人事考试网,这里面会公布广东的报考信息,没记错的话是 ...

  5. 系统集成项目管理工程师 计算专题(下午计算题-成本类-案例分析)

    有兴趣了解或者考软考的小伙伴可以到B站看看这个老师讲的课程. 学计算机的小伙伴有时间可以考一个软考证书,这是中国计算机技术职业资格网官网. 这是广东人事考试网,这里面会公布广东的报考信息,没记错的话是 ...

  6. java-继承实现学生类和老师类案例

    java-继承实现学生类和老师类案例:: 定义一个父类: package day08;public class PersonDemo {private String name;private int ...

  7. ruby File类

    类方法 路径相关: File.basename(filename <, suffix>) -> string返回给定文件名 filename 的最后一部分.如果有 suffix 参数 ...

  8. 【TODO】Ruby Range类

    创建: 2017/10/28 Range类                                                                               ...

  9. ruby在类中访问@,类外访问调用方法

    class Boxdef initialize(w,h)@width,@height=w,hend def printWidthputs @widthenddef printHeight@height ...

最新文章

  1. 面试季:如何在面试中介绍自己的项目经验
  2. xCode中工程相关的一些处理:一个工程包含多个Target的用途和使用方法【转】...
  3. jQuery learn - 1 - 选择元素 CSS
  4. bzoj 1834: [ZJOI2010]network 网络扩容【最大流+最小费用最大流】
  5. 通信系统的同步技术归纳
  6. SQL开发中容易忽视的一些小地方( 三)
  7. 无规则弹窗自动点击插件_vscode 插件会了吧,英语不好的赶紧下载 自动分析源码中的陌生单词、点击朗读单词...
  8. 【VBS】一款无聊的 Visual Basic Script 表白程序
  9. .net java 开源_为什么说微软开源 .net 也拼不过 java?
  10. 七秘诀工作效率与薪水翻番
  11. python制作简单文本编辑器
  12. Scrapy爬取QQ音乐、评论、下载、歌曲、歌词
  13. 兜兜线报软件合集_柚子快报淘抢购秒杀系列【送秒杀软件】
  14. 每日一记之数据库事务
  15. python里lambda是什么_Python中lambda指的是什么
  16. 快速乘-在乘法溢出的边缘疯狂试探
  17. 数位笔的笔芯磨损到什么程度需要更换?压感笔笔芯怎么更换?
  18. ArcGIS学习记录—dbf shp shx sbn sbx mdb adf等类型的文件的解释
  19. Rainbow Fart安装及设置其他语音包
  20. Android10无法访问根目录文件解决

热门文章

  1. tensorflow 1.X迁移至tensorflow2 代码写法
  2. 连接数据库是显示无法连接到服务器,如何解决出现无法与数据库服务器建立连接的方法...
  3. 计算机二级考试需要怎么备考,计算机二级ms office应该怎么备考 考试内容是什么...
  4. linux重装出现cannot load file 5555h,重装win7系统开机提示cannot load file code:5555h怎么办...
  5. PAT_B_1007_Java(20分)
  6. python窗口显示表格_Python爬虫之GUI图表
  7. 三相逆变器双pi控制器参数如何调节_一分钟看懂维也纳三相整流器
  8. java mybatis 代码生成器_Java MyBatis-Plus 代码生成器
  9. 『设计模式』外观模式--这篇博客也太明了吧
  10. windows系统修改cmd窗口编码格式