当前位置: 技术问答>java相关
■■[简单Applet]困惑:怎么会有不同奇特结果???谁能说一说???(不同C++??)
来源: 互联网 发布时间:2015-06-01
本文导语: import java.applet.Applet; import java.awt.*; import java.awt.event.*; /* */ public class password extends Applet implements ActionListener { public TextField text1; public TextField text2; public void init() { ...
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
/*
*/
public class password extends Applet implements ActionListener
{
public TextField text1;
public TextField text2;
public void init()
{
TextField text1 = new TextField(30);
// text1 = new TextField(30);
add(text1);
TextField text2 = new TextField(30);
// text2 = new TextField(30);
add(text2);
text1.setEchoChar('*');
text1.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == text1){
text2.setText(text1.getText());
}
}
}
在text1的文本域中输入口令并按下回车键时,口令没有显示在text2的文本域中!!
但用注释代替相应行即用后即(
text1 = new TextField(30); 替代TextField text1 = new TextField(30);
text2 = new TextField(30); 替代TextField text2 = new TextField(30);
)
,却能显示!!
是不是局部变量覆盖掉全局变量了???好像只是重新声明了一次!!
大家说说是怎么回事???
import java.awt.*;
import java.awt.event.*;
/*
*/
public class password extends Applet implements ActionListener
{
public TextField text1;
public TextField text2;
public void init()
{
TextField text1 = new TextField(30);
// text1 = new TextField(30);
add(text1);
TextField text2 = new TextField(30);
// text2 = new TextField(30);
add(text2);
text1.setEchoChar('*');
text1.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == text1){
text2.setText(text1.getText());
}
}
}
在text1的文本域中输入口令并按下回车键时,口令没有显示在text2的文本域中!!
但用注释代替相应行即用后即(
text1 = new TextField(30); 替代TextField text1 = new TextField(30);
text2 = new TextField(30); 替代TextField text2 = new TextField(30);
)
,却能显示!!
是不是局部变量覆盖掉全局变量了???好像只是重新声明了一次!!
大家说说是怎么回事???
|
事实已经证明你的猜测是正确的