package P;public class P1 extends Thread {
static String sName = "vandeleur"; public static void main(String argv[]) {
P1 t = new P1();
t.piggy(sName);
System.out.println(sName);
} public void piggy(String sName) {
sName = sName + " wiggy";
start();
} public void run() {
for (int i = 0; i < 4; i++) {
sName = sName + " " + i;
}
}
}
运行结果为什么是:vandeleur而不是:vandeleurwiggy
求详解!
static String sName = "vandeleur"; public static void main(String argv[]) {
P1 t = new P1();
t.piggy(sName);
System.out.println(sName);
} public void piggy(String sName) {
sName = sName + " wiggy";
start();
} public void run() {
for (int i = 0; i < 4; i++) {
sName = sName + " " + i;
}
}
}
运行结果为什么是:vandeleur而不是:vandeleurwiggy
求详解!
在方法中同名的变量把类变量给隐藏掉了,这里实际上用的是在方法中定义的局部变量而已,外面那个类变量并没有动。
sName = sName + " wiggy";
start();
}
中的sName是你传过来的那个变量不是类中的属性,你要改成this.sName = this.sName+sName;才行。