我编写了如下代码,编译通过,但运行时出现问题(JDK版本是:1.6.0_07).请各位高手指出错误之处,不胜感激!
class Bar
{
int barNum=28;
}class Foo
{
Bar myBar=new Bar();
void changeIt(Bar mybar){
myBar.barNum=99;
System.out.println("myBar.barNum in changeIt is"+myBar.barNum);
myBar=new Bar();
myBar.barNum=420;
System.out.println("myBar.barNum in changeIt now is"+myBar.barNum);
}
public static void main(String[] arg){
Foo f=new Foo();
System.out.println("f.myBar.barNum is"+f.myBar.barNum);
f.changeIt(f.myBar);
System.out.println("f.mybar.barNum after changeIt is"+f.myBar.barNum);
}
}
class Bar
{
int barNum=28;
}class Foo
{
Bar myBar=new Bar();
void changeIt(Bar mybar){
myBar.barNum=99;
System.out.println("myBar.barNum in changeIt is"+myBar.barNum);
myBar=new Bar();
myBar.barNum=420;
System.out.println("myBar.barNum in changeIt now is"+myBar.barNum);
}
public static void main(String[] arg){
Foo f=new Foo();
System.out.println("f.myBar.barNum is"+f.myBar.barNum);
f.changeIt(f.myBar);
System.out.println("f.mybar.barNum after changeIt is"+f.myBar.barNum);
}
}
public class LztTestDemo { public static void main(String[] arg) {
Foo f = new Foo();
System.out.println("f.myBar.barNum is" + f.myBar.barNum);
f.changeIt(f.myBar);
System.out.println("f.mybar.barNum after changeIt is" + f.myBar.barNum);
}
} class Bar {
int barNum = 28;
} class Foo {
Bar myBar = new Bar();
void changeIt(Bar mybar) {
myBar.barNum = 99;
System.out.println("myBar.barNum in changeIt is" + myBar.barNum);
myBar = new Bar();
myBar.barNum = 420;
System.out.println("myBar.barNum in changeIt now is" + myBar.barNum);
}
}
结果如下:myBar.barNum in changeIt is99
myBar.barNum in changeIt now is420
f.mybar.barNum after changeIt is420