Ruby中module和Class的区别

上一篇 / 下一篇  2009-09-09 16:22:13 / 个人分类:Ruby && Watir

   1、模块和类的区别在于,模块不能实例化,类不能include

"g$p5v1N SdXn0  2、如果模块和类不在同一个文件中,如果要使用include,则先使用require,把文件引入。

(}#r:sO$Je0

a.@S-@A*I:p4]"O(e(g0  3、include并不是简单的将模块的实例变量和方法拷贝到类中,而是,它是建立一个由类到所包含模块的引用。如果多个类引用该模块,都将指向同一个模块。51Testing软件测试网hw9cOp

$z#| Np'dW.S)UPy d0  4、如果有多个include,将依次生成代理类,最后一个include的将是该类的直接超类,依次向上衍生51Testing软件测试网/z2Pwa@8O

51Testing软件测试网`|-w_S!HF

  5、含有include的模块或类定义,可以访问它所包含的常量,类变量和实例方法。如果一个模块被包含,那么模块的常量,类变量,实例方法都被绑定到该类的一个匿名超类中,类的对象会响应发送给模块实例方法的消息。51Testing软件测试网a|In~X+Hz5s

51Testing软件测试网"{ Pqcl%|q2c

  6、模块里可以定义一个initialize方法,当创建包括模块的类的对象是,如果满足如下条件之一,那么模块的该方法将被调用

"z/G*s(?U }j&Ve0 51Testing软件测试网U$WDk wX iT

  a、类没定义它自己的initialize方法51Testing软件测试网&u0o X ei6^ y7]@ w

51Testing软件测试网-s+Ph,pKj/L

  b、类的initialize方法中调用了super51Testing软件测试网9k:Q t:INM


TAG: class module Ruby Class Module

 

评分:0

我来说两句

日历

« 2024-03-30  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 46483
  • 日志数: 47
  • 建立时间: 2009-09-03
  • 更新时间: 2010-06-10

RSS订阅

Open Toolbar