设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2885|回复: 11
打印 上一主题 下一主题

模块的用法

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-3-8
帖子
36
跳转到指定楼层
1
发表于 2008-5-17 20:07:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv3.寻梦者

孤独守望

梦石
0
星屑
3134
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

2
发表于 2008-5-17 20:15:00 | 只看该作者
类和模块有以下差别

类可生成实例
类不能使用 include 进行 Mix-in
除此以外类的大部分功能都继承于 Module。

以上摘自F1。事实上,模块可以看成一个所有成员都是共享的类。
格式
module XXX
#属性不要使用
@iosejgoi = 2354
def self.方法名
end
end
调用:……
模块名.方法名(参数)
应用:……………………
系统信息:本贴由本区版主认可,66RPG感谢您的热情解答~
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1700
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

3
发表于 2008-5-17 20:16:30 | 只看该作者
1.屬於靜態的類,不能生成實例(.new),在全局當中是唯一的存在。
2.module XXX(與類基本相同)

3.
module A
end
A(直接用)

4.用的最多的是用來儲存常量(Constance)
在class 當中使用 include XXX 實現多繼承

5.存在意義,作爲動態類的一個補償
系统信息:本贴由本区版主认可,66RPG感谢您的热情解答~
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

4
发表于 2008-5-17 20:31:54 | 只看该作者
模块不需要实例化  相当于C++里面的名空间, 其中包含静态函数和变量, 和类的定义
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3134
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

5
发表于 2008-5-17 20:37:47 | 只看该作者
以下引用link006007于2008-5-17 12:31:54的发言:

模块不需要实例化  相当于C++里面的名空间, 其中包含静态函数和变量, 和类的定义

不管是命名空间还是无名空间都可以包含类诶= =而模块里的类却是嵌套类= =这样不是误导人家吗……
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

6
发表于 2008-5-17 20:55:05 | 只看该作者
module AM
  class AM_Class1
    def initialize
      p 1
    end
  end
end

class AM_Class1
  def initialize
    p 2
  end
end

a = AM::AM_Class1.new
a2= AM_Class1.new
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-3-8
帖子
36
7
 楼主| 发表于 2008-5-17 21:43:38 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

8
发表于 2008-5-17 22:04:52 | 只看该作者
module Mod
  def Show()
    p "module Show"
  end
  def self.Show()
    p "module selfShow"
  end
end

class IncludeMod
  include Mod
end
class NoIncludeMod
  def Show
    Mod::Show()
  end
end

a = NoIncludeMod.new
a.Show
b = IncludeMod.new
b.Show
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1700
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

9
发表于 2008-5-17 22:10:39 | 只看该作者
其實啊...include 就是 inheritance (繼承)的實質啊(茶)
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

10
发表于 2008-5-17 22:12:25 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2026-6-18 10:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表