输出结果的疑问?

Sun_Java_Fan 2005-11-06 08:10:31
程序:
//组合的使用

class SimpleObject {
private String s;

SimpleObject() {
System.out.println("SimpleObject()");
s = new String("Constructed");
}

public String toString() {
return s;
}
}

public class CompositeObject {
private String s1 = new String("Happy");
String s2 = "Happy";
String s3,s4;
SimpleObject simpleObject;
int i;

CompositeObject() {
System.out.println("Inside CompositeObject()");
s3 = new String("Joy");
i = 47;
simpleObject = new SimpleObject();
}

void print() {
if(s4 == null) s4 = new String("Joy");
System.out.println("s1 = " + s1);
System.out.println("s2 = " + s2);
System.out.println("s3 = " + s3);
System.out.println("s4 = " + s4);
System.out.println("i = " + i);
System.out.println("simpleObject = " + simpleObject);
}

public static void main(String[] args) {
CompositeObject b = new CompositeObject();
b.print();
}
}

疑问:为什么simpleObject = Constructed,而不是其他的结果呢?
...全文
131 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
believefym 2005-11-06
  • 打赏
  • 举报
回复
public String toString() {
return s;
}
Sun_Java_Fan 2005-11-06
  • 打赏
  • 举报
回复
结果:
Inside CompositeObject()
SimpleObject()
s1 = Happy
s2 = Happy
s3 = Joy
s4 = Joy
i = 47
simpleObject = Constructed
但我想知道的是为什么simpleObject = construted,而不是simpleObject = 其它的?
经过一个上午的查找,我终于知道是什么原因了。下面是我在书上看到的描述:对基本数据类型而言,变量的值就是基本数据的值;对引用数据类型则有所不同,变量实际上可以理解为保存的是一个地址,以这个地址开始的地方保存的是某个实例。
believefym 2005-11-06
  • 打赏
  • 举报
回复
你有没有搞错,结果怎么可能是你这个
//:
Inside CompositeObject()
SimpleObject()
s1 = Happy
s2 = Happy
s3 = Joy
s4 = Joy
i = 47
simpleObject = Constructed

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧