Java中有两种类型的数据,一种是基本类型数据,还有就是对象类型!而groovy中,所有的类型都是对象类型,即使在源码中写的是数字,如:def i=2; 其在编译后,仍然使用对应的包装类型Integer,既然一切是对象,为使用一个对象以实现相关功能,必须调用所属类声明的某个方法。因此可以使用123.abs()表达式调用abs方法来获得整数对象123的绝对值。同样,如要获得123的下一个整型值(124)的话,可以调用获取后续值的next方法,如123.next()所示。
在Groovy环境中,如果想得到整数123和整数456的算术之和的话,可以通过调用Integer类的+方法来实现,比如123.+(456)表达式。Integer对象456是该方法的参数。当然,和在学校学到的算术技巧相比,这种做法一点也不直观。幸运的是,Groovy同样也支持运算符重载(参见附录I)。这样,+方法就能够作为一个二元操作符出现在其两个参数之间,表达式123+456将更符合人们的习惯。然而,对象调用方法通常最好的做法是,将另外一个对象作为该方法的参数。事实上,在这个例子中,Groovy环境下更为实用的方法就是像123.plus(456)一样调用plus方法。