网上很多
private static void method(Object a, Object b) {
a = 400;
b = 500;
System.out.println(a);
System.out.println(b);
System.exit(0);
}
private static void method(Object a, Object b) {
a = 400;
b = 500;
System.out.println(a);
System.out.println(b);
System.exit(0);
}
static class T{
public Integer a;
public Integer b;
}
public static void main(String... args){
T t = new T();
t.a=4;t.b=5;
method(t);
system.out.println(t.a + " ; " + t.b);
}
public static void method(T t){
t.a=500;
t.b= 400;
}
}
还有就是java使用值传递是无法改变原有变量的值的。
{
a.setIntValue(400);
b.setIntValue(300);
}??
public static void main(String[] args) {
int a, b;
a = 4;
b = 5;
method(a, b);
System.out.println("a=" + a + "b=" + b);
} public static void method(Object a, Object b) {
// 通过这个方法把a变成400,把b变成500
a = 400;
b = 500;
// 输出还是a=4 b=5
// 函数体内部玩法修改函数以外的变量值
}
}
public static void main(String[] args) throws Exception {
Integer a,b;
a = 4;
b = 5;
change(a,b);
System.out.println("a=" + a + ",b=" + b);
} private static void change(Integer a, Integer b) throws Exception {
Class<?> clazz = a.getClass();
Field field = clazz.getDeclaredField("value");
field.setAccessible(true);
field.set(a,400);
//b 类似
//.....
}
}
public static void method(Object a, Object b) {
// 通过这个方法把a变成400,把b变成500
a = 400;
b = 500;
// 输出还是a=4 b=5
在这里输出a,b
然后退出执行System.exit(0);
// 函数体内部玩法修改函数以外的变量值
}
看网上的答案,这题目更像是智力题private static void method(Object a, Object b) {
a = 400;
b = 500;
System.out.println(a);
System.out.println(b);
System.exit(0);
}