阅读目录

  • 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. android studio dump java heap_Android Studio 3.0 Memory Profiler使用
  2. SpringContextHolder 静态持有SpringContext的引用
  3. POJ - 1226 Substrings(后缀数组+二分)
  4. 如何提高个人博客的访问量
  5. 转:全卷积网络(FCN)与图像分割
  6. 浅谈数据中心白盒交换机开发
  7. php文字音频插件下载安装,Goodhertz音频插件下载
  8. OpenCV-Python 识别万用表七段数码管电流值
  9. 乐高ev3编程 c语言,乐高ev3编程软件下载-乐高EV3机器人编程软件lego mindstorms ev31.0 官方版 - 极光下载站...
  10. rapidminer decision tree(决策树)手册
  11. 最新Oracle官网JDK 8.0的下载
  12. 解决oracle 报 ORA-20000(ORU-10027)错误的方法
  13. BZOJ 1631==USACO 2007== POJ 3268 Cow Party奶牛派对
  14. 爱莫完成A+轮融资,打造基于实体零售数据引擎的Metachain Store平台
  15. SD卡插入手机容量变小,U盘低级格式化HA-LLFTOOL
  16. 简单记录下几家公司的面试经历(Java一年经验)
  17. 电压跟随器的使用方法
  18. STM32写FLASH期间导致中断无法响应的解决思路
  19. 自己动手模仿 springmvc 写一个 mvc框架
  20. 25匹马,5个跑道,每次只能跑5匹,用最少的次数选出最快的前3匹

热门文章

  1. oracle语句求保有率,Oracle之保有量计算(当前记录等于前几条记录之和)
  2. 【计算机组成原理】各种码表示的数
  3. 软件工程--第五章-- 总体设计
  4. 如何使用eclipse进行嵌入式Linux的开发
  5. (转)FPGA的速度等级(speed grade)
  6. 梯度下降的三种形式——BGD、SGD、MBGD
  7. 爆破登录测试网页_预测危险的地震爆破第一部分:EDA,特征工程和针对不平衡数据集的列车测试拆分
  8. 使用Python和OpenCV创建自己的“ CamScanner”
  9. 机器学习学习吴恩达逻辑回归_机器学习基础:逻辑回归
  10. 芝麻信用分750以上有什么特殊作用?