返回信息流//Test.java
package test;
import static mypackage.Print.*;
public class Test {
public static void main(String[]args){
Flower one=new Flower("rose",10);
Flower two=new Flower("lily",5);
one=two;
// two.name="LILY";
print(two);
print(one);
}
}
class Flower{
String name;
int height;
Flower(String name,int height){
this.name="rose";
this.height=height;
}
public String toString(){
return name;
}
}
//Print.java
package mypackage;
public class Print {
public static void print(Object a){
System.out.println(a);
}
}
不明白为什么one=two后打印出来的都是rose,照说不是应该是one成了lily的引用吗?
我改成two=one后,打印出来的仍然都是rose,十分不解
我发现如果print打印的是height的话,经过one=two,输出结果跟我们预想的是一致的,都为two的height
是String比较特殊吗
这是一条镜像帖。来源:北邮人论坛 / java / #52810同步于 2016/9/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
java语法求助
herbice
2016/9/9镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
print是静态导入的方法,内容是System.out.println(Object a)
【 在 maoxian 的大作中提到: 】
: print方法的代码是什么
【 在 herbice 的大作中提到: 】
: print是静态导入的方法,内容是System.out.println(Object a)
贴完整代码吧,注意格式
贴上了,帮看下吧,拜谢!
【 在 superzhaoyy 的大作中提到: 】
: 感觉要么你的Flower这个类写的有问题,要么打印方法里的有问题。建议把完整代码贴出来
代码:
Flower a = new Flower("rose",1);
Flower b = new Flower("lilly",2);
System.out.println(a);
System.out.println(b);
a =b ;
System.out.println(a);
System.out.println(b);
结果:
rose
lilly
lilly
lilly