import java.io.*;
class A{
public int x=10;
}
class test
{
public void hell0(A arg)
{
arg.x=9;
arg=new A();
arg.x=8;
、、、、、、、、、、、、、、、
}
public static void main (String[] args) throws java.lang.Exception
{
A a=new A();
test s=new test();
s.hell0(a);
System.out.println(a.x);
}
}
public void hell0(A arg)
{
arg.x=9;
arg=new A();
arg.x=8;
System.out.println("88888");
System.exit(0);
}
重写println
没有那么复杂,只是填几行代码。。。。。。我一开始是上边填一个引用,下边又填了几行,但是他说最好就是在、、、、、、、、、hello那三行后边改一些,或者添加一些什么。。。?
@邗影: 根据提供的这个hell0(A arg)模板,在、、、、、、、、、之后是不可能修改原始对象 a ,对arg变量进行的任何操作都不会影响 a 对象,所以只能在输出上做文章。Java里面只有值传递。
直接删掉arg=new A(); 你传递进来的对象是有对外是有效的, 当你新new一个对象后已经不是之前传递进来的对象了, 所以后续怎么改也不会生效的 其实好多人都说java只有值传递, 个人感觉这个情况就不是值传递了
两种方式,第一种同上,不要在那方法里面去new(ps:你new的用意是什么?)
第二种,加个对象,让A成为其成员(字段),hello方法接受这个对象,然后你想怎么掰那个class为A的字段就怎么掰吧。
hello里的前三行是人家给的,只让你在前三行后改动。。。。。所以我才这样问
void hello(A arg){
A arg2=arg;
那三行.......
.........
..............
arg2.x=8;}
我一开始是这样改的,但是他希望还有别的方式,????我就不知道了