Java和Ruby:OO中的"一切都是对象"?

nik*_*ifi 2 ruby java object

Java中的所有东西都是Ruby中的对象吗?

书籍,教程,一切都说明"Ruby中的所有内容都是一个对象",但面向对象语言是否常见?

一切对象都是Java,或者面向对象只是一种编程范式,它并不意味着一切都是对象或对象的评价?

小智 10

没有.

至于价值观去,"原始类型"( ,,int 等)在Java中都没有对象.在Ruby中,它们是对象.(在一些Ruby实现中,fixnums在内部是"值类型"以提高性能,但在外部它们可以作为具有方法的"真实"对象来处理.boolfloat

此外,还有其他一些Ruby中的对象,它们不是Java中的对象,例如类.(实际上,Java也暴露了这些Class,但在不同的意义上.)

在任何一种语言中都有一些不是对象的东西,比如变量方法.(虽然在Ruby中很容易得到一个代表给定方法的对象.)

无论如何,我认为更大的局面是面向对象的编程范例提供了一种将数据和操作分组到所述数据上的方法.(这通常通过实例方法完成,如在Java和Ruby中,尽管它也可以通过多个调度和其他语言来完成,例如Haskell,即"非OO",为此任务提供替代方法.)

通常,"OO"的定义还包括"继承","封装","抽象"和其他愚蠢的教科书术语,但不同"OO"语言的用法和模式可能会有很大差异,并与"非" OO"语言;-)