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

Project1

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

[已经解决] 关于Object、Module和Class的关系

 关闭 [复制链接]

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

跳转到指定楼层
1
发表于 2009-7-22 21:16:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
不知道该怎么描述问题了……谁研究过把成果一下吧
大概就是谁是所有类的父类……之类的问题吧
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上

Lv1.梦旅人

梦石
0
星屑
50
在线时间
8 小时
注册时间
2009-7-21
帖子
152
2
发表于 2009-7-22 21:25:35 | 只看该作者
不知道该怎么描述问题了……谁研究过把成果一下吧
大概就是谁是所有类的父类……之类的问题吧
zh99998 发表于 2009-7-22 21:16

没研究过...本人是脚本小白
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
3
发表于 2009-7-22 21:26:24 | 只看该作者
那些脚本术语偶是不太懂得的说~

Object是所有类的父类
我记得c++也是~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
8 小时
注册时间
2009-7-21
帖子
152
4
发表于 2009-7-22 21:30:27 | 只看该作者
那些脚本术语偶是不太懂得的说~

Object是所有类的父类
我记得c++也是~
ONEWateR 发表于 2009-7-22 21:26

LS的..你学什么?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
5
发表于 2009-7-22 21:33:06 | 只看该作者
- -~ 各种语言多多少少都有一些共性吧 - -~

以下来自F1

Object
所有类的父类。它定义了对象的一般行为。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
8 小时
注册时间
2009-7-21
帖子
152
6
发表于 2009-7-22 21:35:57 | 只看该作者
- -~ 各种语言多多少少都有一些共性吧 - -~

以下来自F1

Object
所有类的父类。它定义了对象的一般行为。
ONEWateR 发表于 2009-7-22 21:33

是有一些共同的地方...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
7
发表于 2009-7-22 23:16:01 | 只看该作者
C++ 哪来的 Object 类…… C# 还差不多 >__<

Class 类一般在高度面向对象的语言中都有,它是编程语言中“一个类的类型”,当我们构建了一个类后,我们实际上就是创建了一个 Class 类的实例:
  1. class A
  2.   def fn
  3.     p "fn() called"
  4.   end
  5. end
复制代码
这样就是产生了一个 Class 对象,并把它赋给了全局常量 A(或者说让 A 指向了这个对象)~
但这样是一个静态设计的类,我们还可以动态地设计一个类,达到与静态设计的类同样的效果:
  1. A = Class.new
  2. A.class_eval("def fn\np \"fn() called\"\nend")
复制代码
Module 是 Class 的父类,是“一个模块的类型”,原理同上~

Object 是凌驾于所有类型之上的超级父类,Class 和 Module 本身也是一种对象,所以它们必然还有 Object 这个超类~

总结:
一个类是 Class 类的实例;一个模块是 Module 类的实例;一个类和一个模块都是对象,所以该类和该模块都是 Object 类的实例
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
620
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

8
发表于 2009-7-23 01:11:36 | 只看该作者
其实....Object 跟 Module 是一个循环.......

p Module.is_a?(Object)    # => true
p Object.is_a?(Module)    # => true

所以 Module 是 Object 的父类
Object 也是 Module 的父类
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
9
发表于 2009-7-23 11:23:43 | 只看该作者
Object.is_a?(Module)    # => true
这是因为 Object 这个“类本身”是一个 Class 类型的对象,所以它也是一个 Module 对象,并不是因为 Module 是 Object 的父类 ^^
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

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

开拓者贵宾

10
发表于 2009-7-23 11:27:03 | 只看该作者
无聊插嘴:本地C++的确没有Object,但是托管C++同样是Object至上的结构

类都是Class类的对象,也是Object的对象
对象(不包括类)都是Object的对象
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 16:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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