小弟最近在看Deitel家族写的<<Java How To Program>>,在此书的第7章的7.9案例中,我有一个小疑惑,我把问题简化如下:
public class Test extends Applet{
public void init()
{
String a = "10";
}
public void paint( Graphics g )
{
g.drawString( a );
a = "20";
}
}
这里明明是先输出,再赋值为"20",为什么书中截屏的屏幕上输出的时"10"呢?我自己用appletviewer打开,一开始时输出的是"10";刷新一下就是"20"了.这点我可以理解,但是原书的截屏,为什么就时"20"呢?原作者如果为了输出"20",按逻辑来说,他应该把赋值语句放在输出语句之前才对啊!是不是我对paint()这个方法的原理内涵理解有什么问题?还是原作者用的编译器和我的不同?请大侠们为我指点迷津!!!!!
public class Test extends Applet{
public void init()
{
String a = "10";
}
public void paint( Graphics g )
{
g.drawString( a );
a = "20";
}
}
这里明明是先输出,再赋值为"20",为什么书中截屏的屏幕上输出的时"10"呢?我自己用appletviewer打开,一开始时输出的是"10";刷新一下就是"20"了.这点我可以理解,但是原书的截屏,为什么就时"20"呢?原作者如果为了输出"20",按逻辑来说,他应该把赋值语句放在输出语句之前才对啊!是不是我对paint()这个方法的原理内涵理解有什么问题?还是原作者用的编译器和我的不同?请大侠们为我指点迷津!!!!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货