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个不太明白,
望详解
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个不太明白,
望详解
因为 初始声明 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);
应该是 main方法里的System.out.println(tp1.s);