import java.util.Stack;
public class Example {
public static void main(String arg[]) {
Stack s1 = new Stack();
Stack s2 = new Stack();
method(s1, s2);
System.out.println("s1 is " + s1 + " s2 is " + s2);
}
public static void method(Stack s1, Stack s2) {
s1.push(new Integer(200));
s2.push(new Integer(100));
s1 = s2;
}
}输出结果为:s1 is [200] s2 is [100] 我是菜虫,哪位大哥大姐帮我分析下,谢了
public class Example {
public static void main(String arg[]) {
Stack s1 = new Stack();
Stack s2 = new Stack();
method(s1, s2);
System.out.println("s1 is " + s1 + " s2 is " + s2);
}
public static void method(Stack s1, Stack s2) {
s1.push(new Integer(200));
s2.push(new Integer(100));
s1 = s2;
}
}输出结果为:s1 is [200] s2 is [100] 我是菜虫,哪位大哥大姐帮我分析下,谢了
但如果你操作函数内s1本身,使它指向另外一个地址,那么跟函数外s1没任何关系。s2同样。看看我发的贴吧:
[值传递的引用传递的区别]
http://community.csdn.net/Expert/topic/3999/3999829.xml
public static void method(Stack s1, Stack s2) {
temp1 = s1;
temp2 = s2; temp1.push(new Integer(200));
temp2.push(new Integer(100));
temp1 = temp2; //虽然temp1引用的是s2,但根本不会改变外部的s1和s2的引用
}
public class Example {
public static void main(String arg[]) {
Stack s1 = new Stack();
Stack s2 = new Stack();
method(s1, s2);
System.out.println("s1 is " + s1 + " s2 is " + s2); s1 = s2; /////////////
}
public static void method(Stack s1, Stack s2) {
s1.push(new Integer(200));
s2.push(new Integer(100));
}
}楼主 你现在看看结果呢???
public class Example {
public static void main(String arg[]) {
Stack s1 = new Stack();
Stack s2 = new Stack();
method(s1, s2);
s1 = s2; /////////////
System.out.println("s1 is " + s1 + " s2 is " + s2);
}
public static void method(Stack s1, Stack s2) {
s1.push(new Integer(200));
s2.push(new Integer(100));
}
}楼上说的是这个意思吧? 我懂了 呵呵 谢谢楼上的兄弟们