内部类
在一个类里访问另一个类的成员变量
好处:
可以方便的访问包装类的成员
可以更清楚的组织逻辑,防止不应该被其它类访问的类进行访问
何时使用:
该类不允许或不需要其它类进行访问时
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.awt.*;
import java.awt.event.*;
public class TFMath{
public static void main(String [] args){
new TFFrame().launchFrame();
}
}
class TFFrame extends Frame{
TextField num1,num2,num3;
public void launchFrame(){
num1 = new TextField(10);
num2 = new TextField(10);
num3 = new TextField(20);
Label lblPlus = new Label("+");
Button btnEqual = new Button("=");
//btnEqual.addActionListener(new MyMonitor(num1,num2,num3));//方法一
//btnEqual.addActionListener(new MyMonitor(this));//方法二
btnEqual.addActionListener(new MyMonitor());//方法三
setLayout(new FlowLayout());
add(num1);
add(lblPlus);
add(num2);
add(btnEqual);
add(num3);
pack();
setVisible(true);
}
class MyMonitor implements ActionListener{
public void actionPerformed(ActionEvent e){
int n1 = Integer.parseInt(num1.getText());
int n2 = Integer.parseInt(num2.getText());
num3.setText(""+(n1+n2));
}
}
}
/*class MyMonitor implements ActionListener{
TextField num1,num2,num3;
public MyMonitor(TextField num1,TextField num2,TextField num3){
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
}//方法一
TFFrame tf = null;
public MyMonitor(TFFrame tf){
this.tf = tf;
}//方法二
public void actionPerformed(ActionEvent e){
int n1 = Integer.parseInt(tf.num1.getText());
int n2 = Integer.parseInt(tf.num2.getText());
tf.num3.setText(""+(n1+n2));
System.out.println("ok");
}
}*/