Posted in 面试题 onOctober 30, 2012
在Ruby中,所操作的一切都是对象,操作的结果也是对象。
很多语言都说自己是面向对象的,但是他们往往对面向对象的解释都一样,大多是以自己特有的方式来解释什么是面向对象,而在实际情况中,这些面向对象语言又采用了很多非面向对象的做法。
以 Java 为例:如果你想取一个数字取绝对值,java 的做法是:
int num = Math.abs(-99);
也就是将一个数值传递给 Math 类的一个静态函数 abs 处理。为什么这么做?因为在 java 中,数值是基本类型不是类。
而在 Ruby 中,任何事物都是对象,也就是说,数字–99就是对象,取绝对值这样的操作应该属于数字本身,所以Ruby的做法就是:
c = -99.abs
很多语言都说自己是面向对象的,但是他们往往对面向对象的解释都一样,大多是以自己特有的方式来解释什么是面向对象,而在实际情况中,这些面向对象语言又采用了很多非面向对象的做法。
以 Java 为例:如果你想取一个数字取绝对值,java 的做法是:
int num = Math.abs(-99);
也就是将一个数值传递给 Math 类的一个静态函数 abs 处理。为什么这么做?因为在 java 中,数值是基本类型不是类。
而在 Ruby 中,任何事物都是对象,也就是说,数字–99就是对象,取绝对值这样的操作应该属于数字本身,所以Ruby的做法就是:
c = -99.abs
为什么说Ruby是一种真正的面向对象程序设计语言
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Tags in this post...
Reply on: @reply_date@
@reply_contents@