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

Project1

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

[胡扯] 类是类还是实例

[复制链接]

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
跳转到指定楼层
1
发表于 2016-11-3 23:29:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
相信大家都知道如果
RUBY 代码复制
  1. class A
  2. end
  3. $a = A.new

那么$a就是A的实例,因此
RUBY 代码复制
  1. $a.class # => A

A虽然是一个类(Class),但同时也是一个名为类(Class)的类的实例
RUBY 代码复制
  1. A.class # => Class

那么既然是实例,那么也就是一个对象
RUBY 代码复制
  1. A.is_a?(Object) # => true


所以类既是自己的实例也是自己的类同时也是自己的对象
RUBY 代码复制
  1. a = Class
  2. a.is_a?(Class) # => true
  3. a.is_a?(Object) # => true
  4. p a = a.class while(a == Class)

JAVA 代码复制
  1. Class<?> kelas = Class.class
  2. System.out.println(kelas instanceof Object)
  3. System.out.println(kelas == Class.class)
  4. for(kelas = Class.class; kelas == Class.class; kelas = kelas.getClass())
  5.     System.out.println(kelas);


随后类到底是类还是实例还是对象呢?

只是突然觉得这个问题可以思考罢了,各位可别太认真==
多选投票: ( 最多可选 2 项 ), 共有 6 人参与投票 查看投票参与人

投票已经结束

14.29% (1)
42.86% (3)
42.86% (3)
您所在的用户组没有投票权限
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21681
在线时间
9419 小时
注册时间
2012-6-19
帖子
7119

开拓者短篇九导演组冠军

2
发表于 2016-11-3 23:35:14 | 只看该作者
实例和对象有什么区别?

点评

QAQ史塔克菊苣什么时候好,史塔克菊苣参考画风的那个KIO都发售好久了的说  发表于 2016-11-6 11:50
签名档里的什么时候好QAQ  发表于 2016-11-5 18:59
实例是instance,对象是object,主要区别在叫法,理论上没什么区别==  发表于 2016-11-3 23:38
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4598
在线时间
1206 小时
注册时间
2016-4-7
帖子
982

开拓者

3
发表于 2016-11-5 18:59:28 | 只看该作者
第二句就有问题了 应该说$a是A实例的引用。
附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复

使用道具 举报

Lv3.寻梦者 (版主)

梦石
0
星屑
3105
在线时间
741 小时
注册时间
2015-2-28
帖子
816

开拓者

4
发表于 2016-11-5 23:20:03 | 只看该作者
感觉楼主的理解可能有些问题?
Ruby的语法我不太清楚,甚至连怎么写派生类都不懂…
但是我的面向对象世界观是,Class的实例化对象、由基类派生类等等……总是有和实例相近的地方……如果以“类是实例”作为比喻,虽然感觉有些引喻失意,但应该也没有什么太多不妥。只是如果不是比喻……就不太合适了吧?
(不太理解Ruby语法就没看代码 如果文不对题那还请见谅

点评

楼下诸神实力打脸 当我没说⊙_⊙  发表于 2016-11-7 18:06
器识为先,文艺其从。
回复

使用道具 举报

Lv3.寻梦者

孤独守望

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

开拓者贵宾

5
发表于 2016-11-5 23:54:44 | 只看该作者
好古老的问题……
Constant Class is a Class.
Constant Class is Object of Class Class.
All mentioned above is Object(s).
Object is a Class.


年轻人好好写码不要去纠结什么世界本源的问题
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9732
在线时间
3227 小时
注册时间
2011-3-24
帖子
739

开拓者

6
发表于 2016-11-6 00:44:44 | 只看该作者
Ruby里
类本身也是一个对象 这是可以肯定的
当你定义一个类时 实际上创建了一个Class类的实例的常量
  1. class Player
  2.   def initialize(name)
  3.     @name = name
  4.   end
  5.   def name
  6.     return @name
  7.   end
  8. end
复制代码

  1. Player = Class.new do
  2.   def initialize(name)
  3.     @name = name
  4.   end
  5.   def name
  6.     return @name
  7.   end
  8. end
复制代码


都可以说得通
>>→Lanza Games 2020←<<
Lanza Schneider
浪子心,孤星梦永远流浪……
~不会放弃,我的精力永远充沛~
>>>>>Lanza Adventure<<<<<
>>>>>Lanza的新年派对!<<<<<
>>>>>Lanza的口袋心脏病!<<<<<
回复

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
6901
在线时间
7028 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

7
发表于 2016-11-6 10:07:24 | 只看该作者
class A < Object
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

8
发表于 2016-11-7 01:27:46 | 只看该作者
你可以参考数组套数组什么的···数组里的元素也可以是数组啊
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

9
发表于 2016-11-7 12:15:06 | 只看该作者
他不能3个都是吗
回复

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

10
发表于 2016-11-7 16:36:13 | 只看该作者
既是类也是实例
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 21:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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