将一个类如: Class Monitor 定义在另一个类 Class Calculator的内部,则这个类Monitor就被称为内部类,在Calculator类中,想要调用Monitor定义的方法,则需先生成一个Monitor对象,其次,如果是在非静态的方法中使用这个对象,则与使用一般对象无异,可是如果是要在静态方法如main()方法使用,则需在将这个对象的类型由Monitor改成Calculator.Monitor
程序:import java.awt.*;
import java.awt.event.*;
public class Calculator {
static TextField num1 = null;
static TextField num2 = null;
static TextField num3 =null;
public Monitor create (TextField num1,TextField num2,TextField num3){
return new Monitor(num1,num2,num3);
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
Frame myFrame = new Frame("计算器 ");
num1 = new TextField();
num2 = new TextField();
num3 = new TextField();
Calculator.Monitor myMoniter = calculator.create(num1,num2,num3);
Label plus = new Label ("+");
Button getSum = new Button("=");
myFrame.setLayout(new FlowLayout());
myFrame.add(num1);
myFrame.add(plus);
myFrame.add(num2);
myFrame.add(getSum);
myFrame.add(num3);
getSum.addActionListener(myMoniter);
myFrame.setVisible(true);
myFrame.pack();
}
class Monitor implements ActionListener {
TextField num1;
TextField num2;
TextField num3;
public Monitor(TextField num1,TextField num2,TextField num3){
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
}
public void actionPerformed(ActionEvent e) {
String s1 = num1.getText();
String s2 = num2.getText();
int n1 = Integer.parseInt(s1);
int n2 = Integer.parseInt(s2);
int sum = n1 + n2;
num3.setText(String.valueOf(sum));
}
}
}