日期:2014-05-20  浏览次数:21037 次

java中关于软件包访问的问题
本帖最后由 mxlmhgzw 于 2013-09-28 01:01:40 编辑
本人是java新手正在学习java中,遇到书上以下的代码
import java.awt.Graphics;
import java.applet.Applet;

public class FriendlyDataTest extends Applet {

private FriendlyData d;

public void init(){
d = new FriendlyData();

}

public void paint(Graphics g){

g.drawString("After instantiation: ",25,25);
g.drawString(d.toString(), 40, 40);



d.x = 77;
d.s = new String("Good bye");
g.drawString("After changing values: ", 25, 55);
g.drawString(d.toString(), 40, 70);



}

}

class FriendlyData{
 int x;
 String s;
 
 public FriendlyData(){
 x = 0;
 s = new String("Hello");
 
 }
 
 public String toString(){
 return "x: "+x+"    s: "+s;
 }
}


书上给出的运行结果是:第一个显示x:0 s:Hello
第二显示 x:77 s:Good bye

个人看代码也觉得应该是这个结果,可是这段代码跑出来的结果是全部显示
x:77 s:Good bye

有人能解答下我的疑惑吗
谢谢~~~

------解决方案--------------------
应该是paint方法调用了两次,你打点log到控制台看看
------解决方案--------------------
运行了一下