分析 rudy 类
程序员文章站
2022-06-23 23:27:12
现实世界满是对象,我们可以为他们分类.举个例子,非常小的孩子看见狗的时候,不管那是什么种类的,都会叫它们"bow-wow";我们天生有通过种类来了解世界的能力....
现实世界满是对象,我们可以为他们分类.举个例子,非常小的孩子看见狗的时候,不管那是什么种类的,都会叫它们"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的自动垃圾回收器会认为那是只流浪犬,然后不留情的处理掉它.这的确可行,你知道的,因为我们可以随心所欲地创造任何的狗.
在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的自动垃圾回收器会认为那是只流浪犬,然后不留情的处理掉它.这的确可行,你知道的,因为我们可以随心所欲地创造任何的狗.
上一篇: PowerShell中捕获异常时的行号和列号的方法
下一篇: RUBY文档中心-学习开始