今天和同事讨论了一个问题,虽然是由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的确是一个对象。
[讨论]SpecifiedClass s1 = new SpecifiedClass(); s1算一个对象吗?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- housen1987 2012-01-06 15:03关注
“一切皆对象”说的是现实世界的任何物件,你都可以当成对象来看待,然后构造出你希望的对象逻辑,别如石头可以看成一个对象,那么质量、体积就是这个对象的属性。
s1是对象的一个实例,不是对象,如果是java中的对象概念的话,那么s1又可以实例化了,也就是说,会有:
[code="java"]s1 a = new s1();[/code]
这个用法你觉得对吗?
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报