[讨论]SpecifiedClass s1 = new SpecifiedClass(); s1算一个对象吗?

今天和同事讨论了一个问题,虽然是由new String引起的,但是这个问题绝对不关new String的什么事情。我争论的问题是:
我们每天都在new Class,然后把引用指给某一个变量,那么这个变量到底能不能称为对象呢 ?
为此我查阅了wiki 上面有一段关于对象的解释:
In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure. color=red[/color]
红色部分我的理解是: 在OOP的世界里,对象 指的是一个类的实例,那么这个实例应该指的是堆上面的那个部分,而不包括栈里面的变量,也就是标题里面的s1!
在我的思想里面,一切皆对象,当然s1属于对象,但是现在被wiki搞乱了,求谁来说服我s1的确是一个对象。

“一切皆对象”说的是现实世界的任何物件,你都可以当成对象来看待,然后构造出你希望的对象逻辑,别如石头可以看成一个对象,那么质量、体积就是这个对象的属性。

s1是对象的一个实例,不是对象,如果是java中的对象概念的话,那么s1又可以实例化了,也就是说,会有:

[code="java"]s1 a = new s1();[/code]

这个用法你觉得对吗?