Project1

标题: Module有什么用 [打印本页]

作者: dbshy    时间: 2008-2-16 05:04
标题: Module有什么用
class和module有什么区别

Module有什么用

先定义了Class a
又定义了Module a
会出现什么结果
[LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: superufo    时间: 2008-2-16 05:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 魔塔制作家    时间: 2008-2-16 05:15
会重定义。。。导致前者被覆盖。。
作者: 叶舞枫    时间: 2008-2-16 05:16
Class的父类吧

半年没弄RM忘得差不多了OTL……
作者: link006007    时间: 2008-2-16 05:57
你就当他是一个静态的class, 一个只有静态数据的类(这种类被实例化没有太大意义)
作者: Eclair    时间: 2008-2-16 06:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 诡异の猫    时间: 2008-2-16 06:03
Moduel一般只是储存一些量 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: dbshy    时间: 2008-2-16 06:05
先定义了Class a
又定义了Module a
会出现什么结果
作者: link006007    时间: 2008-2-16 06:10
以下引用dbshy于2008-2-15 22:05:27的发言:

先定义了Class a
又定义了Module a
会出现什么结果

报错的结果干干好和先定义了module a在定义了class a相反  {/cy}
所以我觉得module是静态类
作者: dbshy    时间: 2008-2-16 06:12
LS什么意思
作者: 水迭澜    时间: 2008-2-16 08:15
Module可以用include被包含在class里边……这是我唯一觉得它有用的地方……其他的我知道得和LZ一样多……嗯……
GJM帮助文档……
Module
模块的类。

父类Object
方法self === obj
该方法主要用在 case 语句的比较中。若 obj 与 self 之间存在 Object#kind_of? 关系时就为真。也就是说,在 case 中检查类、模块的所属关系。

str = String.new
case str
when String     # 计算 String === str
  p true        # => true
end

私有方法attr_accessor(name ... )
为 name 属性定义读取和写入的方法。name 可以是 Symbol 或字符串。

以此方法定义的方法的定义如下。

def name
  @name
end
def name=(val)
  @name = val
end

attr_reader(name ... )
定义 name 属性的读取方法。name 可以是 Symbol 或字符串。

以此方法定义的方法的定义如下。

def name
  @name
end

attr_writer(name ... )
定义 name 属性的写入方法(name=)。name 可以是 Symbol 或字符串。

以此方法定义的方法的定义如下。

def name=(val)
  @name = val
end

include(module ... )
对指定模块的性质(方法或常数)进行添加。返回 self。include 正是为实现 Mix-in(糅合)功能而设计的,而 Mix-in 取代了多重继承。

class C
  include FileTest
  include Math
end

添加模块功能时,先要突破类的继承关系,而后插入模块就可以实现功能的扩展。所以在搜索方法等过程中,首先要搜索添加的模块,然后才搜索父类。

若多次 include 同一个模块时,则只有首次 include 是有效的。若 include 引起模块间的循环继承时,将引发 ArgumentError 异常。





作者: 血色№涟漪    时间: 2008-2-16 08:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: 趙雲    时间: 2008-2-16 08:51
以下引用血色№涟漪于2008-2-16 0:33:14的发言:

RGSS仅此而已了。
不是留给做游戏的调的方便Module没啥作用,数据记录在$game_temp,$game_system,$game_party就得了。

以下引用趙雲于2008-2-15 22:09:00的发言:
module 必须大写


是module后面东西的第一个字母必须大写吧?或者你在不懂装懂?
module大写任何一个字母游戏都完蛋@#@!#$了。


[本贴由作者于 2008-2-16 0:33:36 最后编辑]


简略点表达而已,用得着这么毒蘑菇吗……{/gg}

作者: 趙雲    时间: 2009-6-12 08:00
module 必须大写

如果都定义为 A 会引发 type error




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1