package day06.tarena.com;
public class TestPara {
int t;
public void test1(int a){
t=4;
a = a/2; 
System.out.println("a="+a);
}
String s = "ss";
public void test2(TestPara tp){
//tp = new TestPara();
tp.s = "bb";
System.out.println("tp.s="+tp.s);
}
public static void main(String[] args) {
int b = 4;
TestPara tp1 = new TestPara();
tp1.test1(b);//传的是4,不是b
System.out.println(b);
tp1.s = "tt";
tp1.test2(tp1);
System.out.println(tp1.s);
}
}
为什么后面打印的是
a=2
4
tp.s=bb
bb
后面2个不太明白,
望详解

解决方案 »

  1.   

    说下后两个如何得出的
    因为 初始声明 String s = "ss";
    调用 tp1.s = "tt"; 
    覆盖了 ss
    调用 tp1.test2(tp1);  传递的是tt
    但是 tp.s = "bb";覆盖了
    此时 s = bb;
    System.out.println("tp.s="+tp.s);  
    然后调用 main方法里的 System.out.println(b); 
      

  2.   

    最后一句 写错了 
    应该是 main方法里的System.out.println(tp1.s);