黑马程序员技术交流社区

标题: 这段代码究竟创建了几个对象? [打印本页]

作者: xbutterflyx    时间: 2015-5-12 11:34
标题: 这段代码究竟创建了几个对象?
int i = 0;

String s = i+"";        //   <---------这段代码

还请各位同仁不吝赐教啊~

作者: 杨春雨    时间: 2015-5-12 11:53
貌似是1个?i已经声明了,“”空字符串只是分配零时空间来存放,i+“”同理。s是创建的对象指向i+”“。
作者: xbutterflyx    时间: 2015-5-12 12:03
杨春雨 发表于 2015-5-12 11:53
貌似是1个?i已经声明了,“”空字符串只是分配零时空间来存放,i+“”同理。s是创建的对象指向i+”“。 ...

我的疑惑是: i转换为字符串时是不是也要给它分配一个地址空间? ""也是有一个地址空间?虽然是临时的,但也算是对象呢?
临时对象也算是对象的情况下,能不能理解为有3个对象呢?
作者: 杨春雨    时间: 2015-5-12 12:20
xbutterflyx 发表于 2015-5-12 12:03
我的疑惑是: i转换为字符串时是不是也要给它分配一个地址空间? ""也是有一个地址空间?虽然是临时的,但 ...

额 这个嘛 应该不可以把,你可以理解内存分配了三个空间。但是面向对象这个对象是什么意思那,我自己认为对象就是一个属性个方法的统一体。对象的特点就是具有状态还可以操作,是数据和操作的统一体。综上所述,只有String s中的s满足条件。。。那个你说的临时我理解就是一个临时的变量吧。不能理解成对象。
作者: xbutterflyx    时间: 2015-5-12 17:14
杨春雨 发表于 2015-5-12 12:20
额 这个嘛 应该不可以把,你可以理解内存分配了三个空间。但是面向对象这个对象是什么意思那,我自己认为 ...

谢谢指点迷津
作者: 牛仔很忙fire    时间: 2015-5-12 21:16
完全看不懂啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2