Java中的所有内容都是Ruby中的对象吗?
书籍,教程,一切都说明“Ruby中的所有内容都是一个对象”,但对于面向对象的语言来说却是常见的吗?
一切对象都是Java,还是面向对象只是一种编程范式,并不意味着一切都是对象或对象的评估?
答案 0 :(得分:10)
没有
就值而言,Java中的“原始类型”(int
,bool
,float
等) not not 对象。在Ruby中,它们是对象。 (在一些Ruby实现中,fixnums在内部是“值类型”以提高性能,但在外部它们可以作为具有方法的“真实”对象来处理。)
此外,Ruby中的其他对象也不是Java中的对象,例如类。 (实际上,Java也将它们公开为Class
,但从不同的意义上说。)
在某种语言中,有些东西不是对象,例如变量和方法。 (虽然在Ruby中很容易得到一个代表给定方法的对象。)
无论如何,我认为更大的情况是Object Oriented programming paradigm提供方式来对所述数据进行数据和操作分组。 (这通常是通过实例方法完成的,就像在Java和Ruby中一样,尽管它也可以通过多个调度和其他语言来完成,比如Haskell,这是“非OO” “,提供替代方法来完成这项任务。)
“OO”的定义通常还包括“继承”,“封装”,“抽象”和其他愚蠢的教科书术语,但不同“OO”语言的用法和模式可能会有很大差异,并且与“非OO”语言; - )