分析 rudy 类
所属分类:
脚本专栏 / ruby专题
阅读数:
1172
收藏 0赞 0分享
现实世界满是对象,我们可以为他们分类.举个例子,非常小的孩子看见狗的时候,不管那是什么种类的,都会叫它们"bow-wow";我们天生有通过种类来了解世界的能力.
在OO编程的术语里,像"狗"这样的一类对象称之为一个类,一些特殊的属于这个类的对象叫作类的实体(instance of that class).
一般的,在Ruby或其它OO语言里创造一个对象首先得定义类的属性,接着再创造一个实体.为了说明这一点,让我们先来定义一个简单的Dog类.
ruby> class Dog
| def speak
| print "Bow Wow\n"
| end
| end
nil
在Ruby里,一个类的定义是在关键字class和end之间的一段代码.在域中的def开始定义类的一个方法(我们已在上一节讨论过了),它对应于此类中的某些特定的对象方法.
既然我们已有了Dog类,我们就可以用它来创造一只狗:
ruby> pochi = Dog.new
#<Dog:0xbcb90>
我们已完成了Dog类的一个全新的实体并为它取名pochi.任何类的new方法都会创生一个新的实体.因为pochi是一只对应于我们已定义类中的狗,它就有我们定义的Dog的一切属性.因为我们对Dog的想法实在简单,我们只能让pochi玩一种把戏.
ruby> pochi.speak
Bow Wow
nil
创造一个新的类实体有时也被称作类的实体化(instantiating).我们需要逗一只实实在在的狗;而不是希望让Dog类向我们汪汪叫.
ruby> Dog.speak
ERR: (eval):1: undefined method `speak' for Dog:class
吃"三明治的概念"显然也是毫无意义的.
同时,如果我们只是想听听狗叫声而不带任何情感,我们可以创造(实体化)一只短命的,临时存在的狗,并在消失前小吠几声.
ruby> (Dog.new).speak # or more commonly, Dog.new.speak
Bow Wow
nil
"等等,"你说,"这只可怜的家伙消失到什么地方去了?"是这样的:如果我们不介意给它个名字(就像早先给pochi一样),Ruby的自动垃圾回收器会认为那是只流浪犬,然后不留情的处理掉它.这的确可行,你知道的,因为我们可以随心所欲地创造任何的狗.
Ruby一行代码实现的快速排序
这篇文章主要介绍了Ruby一行代码实现的快速排序,本文直接给出实现代码,超级简洁的一个的方法,需要的朋友可以参考下
收藏 0赞 0分享
Ruby实现的3种快速排序算法
这篇文章主要介绍了Ruby实现的3种快速排序算法,本文给出了快速排序的普通版本、快速排序的随机化版本、快速排序的利用了Ruby的语法糖的随机化版本三个版本,需要的朋友可以参考下
收藏 0赞 0分享
Ruby实现的最优二叉查找树算法
这篇文章主要介绍了Ruby实现的最优二叉查找树算法,本文直接给出实现代码,需要的朋友可以参考下
收藏 0赞 0分享
Ruby实现的最长公共子序列算法
这篇文章主要介绍了Ruby实现的最长公共子序列算法,本文直接给出实现代码,需要的朋友可以参考下
收藏 0赞 0分享
Ruby实现的合并排序算法
这篇文章主要介绍了Ruby实现的合并排序算法,本文直接给出实现代码,需要的朋友可以参考下
收藏 0赞 0分享
Ruby实现的矩阵连乘算法
这篇文章主要介绍了Ruby实现的矩阵连乘算法,本文直接给出实现代码,需要的朋友可以参考下
收藏 0赞 0分享
Ruby实现的各种排序算法
这篇文章主要介绍了Ruby实现的各种排序算法,本文给出了Bubble sort、Insertion sort、Selection sort、Shell sort等排序的实现方法,需要的朋友可以参考下
收藏 0赞 0分享
查看更多