首页 新闻 会员 周边

如何让输出值为8.只能在、、、、位置添加,只修改hello函数

0
悬赏园豆:5 [已解决问题] 解决于 2017-02-19 09:24

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);
}
}

邗影的主页 邗影 | 初学一级 | 园豆:73
提问于:2017-02-14 18:23
< >
分享
最佳答案
0

public void hell0(A arg)
{
arg.x=9;
arg=new A();
arg.x=8;

System.out.println("88888");

System.exit(0);
}

收获园豆:5
liouwei4083 | 菜鸟二级 |园豆:231 | 2017-02-18 22:11
其他回答(3)
0

重写println

创心coder | 园豆:736 (小虾三级) | 2017-02-14 18:41

没有那么复杂,只是填几行代码。。。。。。我一开始是上边填一个引用,下边又填了几行,但是他说最好就是在、、、、、、、、、hello那三行后边改一些,或者添加一些什么。。。?

支持(0) 反对(0) 邗影 | 园豆:73 (初学一级) | 2017-02-14 18:57

@邗影: 根据提供的这个hell0(A arg)模板,在、、、、、、、、、之后是不可能修改原始对象 a ,对arg变量进行的任何操作都不会影响 a 对象,所以只能在输出上做文章。Java里面只有值传递。

支持(0) 反对(0) 创心coder | 园豆:736 (小虾三级) | 2017-02-14 19:25
0

直接删掉arg=new A();  你传递进来的对象是有对外是有效的, 当你新new一个对象后已经不是之前传递进来的对象了, 所以后续怎么改也不会生效的  其实好多人都说java只有值传递,  个人感觉这个情况就不是值传递了

年久失修 | 园豆:224 (菜鸟二级) | 2017-02-15 15:20
0

两种方式,第一种同上,不要在那方法里面去new(ps:你new的用意是什么?)

第二种,加个对象,让A成为其成员(字段),hello方法接受这个对象,然后你想怎么掰那个class为A的字段就怎么掰吧。

Daniel Cai | 园豆:10424 (专家六级) | 2017-02-16 09:58

hello里的前三行是人家给的,只让你在前三行后改动。。。。。所以我才这样问

支持(0) 反对(0) 邗影 | 园豆:73 (初学一级) | 2017-02-17 12:13

void hello(A arg){

A arg2=arg;

那三行.......

.........

..............

arg2.x=8;}

我一开始是这样改的,但是他希望还有别的方式,????我就不知道了

支持(0) 反对(0) 邗影 | 园豆:73 (初学一级) | 2017-02-17 12:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册