在Ruby中,一切都是对象。对于那些喜欢使用高度面向对象的语言(例如Smalltalk,Eiffel或CLOS)的用户来说,这是非常受欢迎的。例如1,2,3或10.8等等都是对象,而不是如Java或C++中的原始类型;字符串是对象,类和方法也都是对象。例如,下面都是有效的Ruby代码(在Ruby中,注释行是以"#"符号界定的):
#对象-34的绝对值 -34.abs #对一个浮点数进行四舍五入处理 10.8.round #返回一个字符串对象的大写且逆转的副本 "This is Ruby".upcase.reverse #返回数学sin方法的参数个数 Math.method(:sin).arity |
图5.Ruby是全对象化的:在Ruby中,整数,浮点数,字符串,甚至类和方法都是对象。这里的代码展示了针对这些类型对象的方法调用。
在Ruby中,所有功能都是通过调用对象上的方法(或操作)实现的。事实上,Ruby中的方法调用就象其它程序语言中的函数或过程调用一样。
就象在所有面向对象程序语言中一样,对象是从类中创建的。Ruby库中提供了许多预构建的类。你可以修改这些类或构建你自己的类。Ruby中的类是使用"class"关键字定义的。类名开始是一个大写字母。类定义以"end"关键字结束。因此,一个Rectangle类的定义可能有如下形式:
为了把方法添加到类,可以使用def关键字。方法的定义也应该以end关键字结束。跟随def关键字和方法名后面就是方法参数。把一个area方法添加到上面的Rectangle类的代码看上去如下所示:
class Rectangle def area (hgt,wdth) return hgt*wdth end end |
对于那些熟悉其它程序语言的用户,他可能注意到一些差别。Ruby并不使用任何花括号来限定类或方法,也不使用分号或其它字符来表示程序语句行的结束。Ruby的目标,根据它的创建者说明,是简单、易用并使编码成为一件"趣事"。谁想记住所有的那些分号?没有意思!在Ruby中,只要你把语句放在一行上,不需要分号或其它代码行结束标记。顺便说一下,在area方法参数周围的括号是不必要的。在默认情况下,Ruby返回一个方法中最后的内容,因此return关键字也可以省略。因此,你可以建立如下简单编码的Rectangle类:
class Rectangle def area hgt, wdth hgt*wdth end end |
尽管上面代码是有效的,但是小括号还是被推荐使用于方法参数表达的,这主要是为了实现较好的可读性。
实例变量和属性
类也可以有实例变量(在一些语言中也称为属性)。例如,由Rectangle类创建的对象应该都有一个高度和宽度。在Ruby中,实例变量不必显式地在类中声明,只是必须在它们的命名中以一个特殊字符来标记和使用。具体地说,所有的实例变量名都以"@"开头。为了实现当调用area方法时,存储矩形实例的高度和宽度,你仅需把实例变量添加到area方法即可:
class Rectangle def area (hgt, wdth) @height=hgt @width = wdth @height*@width end end |
更确切地说,当创建一个Rectangle实例时,应该指定高度和宽度,而实例变量在此时才确定。另外,Ruby提供了一种特殊的方法initialize,它允许你建立或准备类的新实例:
class Rectangle def initialize (hgt, wdth) @height = hgt @width = wdth end def area () @height*@width end end |
分享到:
相关推荐
本教程旨在为初学者提供一个全面的Ruby语言入门指南,帮助他们快速掌握这门语言的基础知识。 首先,Ruby的核心设计理念是“人本主义”,这意味着它强调代码的可读性和程序员的生产力。Ruby的语法清晰,易于理解,...
欢迎来到“Ruby快速入门(30分钟入门)” — 一个为初学者精心设计的Ruby编程之旅。本教程旨在通过紧凑、高效的课程结构,让你在短短半小时内掌握Ruby编程语言的基础知识,开启你的编程旅程。 Ruby,作为一种优雅且...
《Ruby语言入门教程v1.0》是一份详尽的指南,旨在为初学者提供一个易于理解的Ruby语言学习路径。下面,我们将深入探讨该教程所涵盖的关键知识点,特别是其标题和描述中提及的核心概念。 ### 1. 编程语言的发展简史 ...
本入门教程“Ruby语言入门教程v1”旨在帮助初学者快速掌握Ruby的基础知识和核心概念,以便能轻松地进行编程。 Ruby的起源: Ruby由日本人松本行弘在1995年创造,其设计目标是强调程序员的生产力和代码的可读性。它...
本教程“Ruby语言入门教程v1.0”旨在为初学者提供一个通俗易懂的学习路径,帮助他们快速掌握Ruby的基础知识。教程将从Ruby语言的起源和发展讲起,介绍其设计理念和主要特性,使学习者对Ruby有一个全面的认识。 Ruby...
本"Ruby语言入门教程"是针对初学者精心设计的,旨在帮助新接触编程或者想学习Ruby语言的读者快速上手。 1. **Ruby的基础概念** - 变量:Ruby中的变量分为五种类型,分别是局部变量(以小写字母或下划线开头)、...
Ruby是一种面向对象的、动态类型的编程语言,由日本的松本行弘(Yukihiro Matsumoto)于1995年设计并开发。它强调代码的简洁性和可读性,致力于提供一种更自然的编程方式,让程序员可以更加专注于解决问题而不是语言...
教程可能包括了变量、数据类型、控制流、类与对象、模块、方法、异常处理、标准库和Ruby on Rails的基本用法等内容。无论你是初学者还是有一定经验的开发者,这个教程都能帮助你巩固基础,进一步提升Ruby编程技能。
Ruby是一种面向对象的、动态类型的编程语言,由日本的松本行弘(Yukihiro Matsumoto)于1995年设计并开发。它强调代码的简洁性和可读性,致力于提供一种更人性化、更高效的编程体验。Ruby的语法结构清晰,易于理解,...
以上是对“RUBY语言入门教程”知识点的概述,涵盖了RUBY语言的基础概念、核心特性和高级应用,旨在帮助初学者快速掌握这门语言,并为后续深入学习打下坚实基础。希望这份详尽的知识点总结能对你有所帮助!
Ruby是一种面向对象的、动态...通过阅读《Ruby入门书籍》和相关文档,你将能够掌握Ruby的基础和进阶知识,理解其编程哲学,并能开始编写自己的Ruby程序。记得实践是检验理解的最好方式,边学边练,不断探索Ruby的魅力。