关于局部变量与成员变量的一个问题
我在程序的"WindowButton"类中定义了一个成员变量:number1,程序就正常运行,但我把成员变量:number1注释了,然后在方法:"actionPerformed(ActionEvent e)"中定义一个局部变量number1来取代注释部分,并初始化后,就不能通过Math.random()方法得到随机数了,局部变量:number1始终还是初始化的那个值.请帮我解释一下这其中的原由. 具体程序如下:
import java.awt.*;
import java.awt.event.*;
class WindowButton extends Frame implements ActionListener
{
//int number1;
TextField 提示条,文本框;
Button buttonGetNumber,buttonEnter;
WindowButton(String s)
{
super(s);
setLayout(new FlowLayout());
buttonGetNumber = new Button("得到一个随机数");
add(buttonGetNumber);
提示条 = new TextField("输入你的猜测:",10);
提示条.setEditable(false);
文本框=new TextField("0",10);
add(提示条);
add(文本框);
buttonEnter = new Button("确定");
add(buttonEnter);
buttonEnter.addActionListener(this);
buttonGetNumber.addActionListener(this);
setBounds(100,100,150,150);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e)
{
int number1=0;
if(e.getSource()==buttonGetNumber)
{
number1 =(int)(Math.random()*100)+1;
提示条.setText("输入你的猜测: ");
}
else if(e.getSource()==buttonEnter)
{
int guess=0;
try
{
guess=Integer.parseInt(文本框.getText());
if(guess==number1)
{
提示条.setText("猜对了!");
}
else if(guess>number1)
{
提示条.setText("猜大了!");
文本框.setText(null);
}
else if(guess<number1)
{
提示条.setText("猜小了!");
文本框.setText(null);
}
}
catch(NumberFormatException ee)
{
提示条.setText("请输入数字字符");
}
}
}
}
class Example7
{
public static void main(String [] args)
{
WindowButton win = new WindowButton("窗口");
}
}