package test4;public class Test {
public static void data(int x , int y) {
x = 4;
y = 5;
}
public static void data(Integer x , Integer y) {
x = 8;
y = 9;
}
public static void data(String s) {
s = new String("world");
}
public static void main(String[] args) {
int a = 2;
int b = 3;
data(a,b);
System.out.println(a);
System.out.println(b);
Integer c = 2;
Integer d = 3;
data(c,d);
System.out.println(c);
System.out.println(d);
String s = "hello";
data(s);
System.out.println(s);
}}这个程序的输出是:
2
3
2
3
hello
这显然和我预料的输出:
2
3
8
9
world
不一样,求高手解答
public class TestStatic {
public static void data(int x , int y) {
x = 4;
y = 5;
System.out.println(x);
System.out.println(y);
}
public static void data(Integer x , Integer y) {
x = 8;
y = 9;
System.out.println(x);
System.out.println(y);
}
public static void data(String s) {
s = new String("world");
System.out.println(s);
}
public static void main(String[] args) {
int a = 2;
int b = 3;
data(a,b);
System.out.println(a);
System.out.println(b);
Integer c = 2;
Integer d = 3;
data(c,d);
System.out.println(c);
System.out.println(d);
String s = "hello";
data(s);
System.out.println(s);
}
}
这个代码可以实现你的要求:public class TestStatic {
public static void data(int x , int y) {
x = 4;
y = 5;
System.out.println(x);
System.out.println(y);
}
public static void data(Integer x , Integer y) {
x = 8;
y = 9;
System.out.println(x);
System.out.println(y);
}
public static void data(String s) {
s = new String("world");
System.out.println(s);
}
public static void main(String[] args) {
int a = 2;
int b = 3;
data(a,b);
// System.out.println(a);
//System.out.println(b);
Integer c = 2;
Integer d = 3;
data(c,d);
// System.out.println(c);
//System.out.println(d);
String s = "hello";
data(s);
// System.out.println(s);
}
}在你的代码中:在定义方法中中的局部变量,局部变量的变化不会受传入到方法的参数的值的影响,除非你在调用的方法中也有输出语句。