Android编程中经常用到内部类的概念 So 复习一下吧~
----------概念---------------
java支持在一个类中声明另一个类,这样的类就是内部类.
包含内部类的类 称之为外嵌类. 并且外嵌类的成员变量,方法在内部类中仍然有效;
匿名内部类是内部类的特殊情况 省略类声明 直接用类体创建对象
----------优点-------------
使用内部类对象做监视器显著减少代码编写量,提高效率;
----------实例-------------
当text1中输入一个数字字符串后
一个监视器(匿名对象)负责计算平方并把结果放到text2中;
另一个监视器(实例police)负责计算立方放到text3中;
----------请看代码----------
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.*;
/**
* @author WX
* @time 2012-10-20
* @aim 内部类实例做监视器
*/
public class myjava extends Frame {
TextField text1, text2, text3;
public myjava() {
// TODO Auto-generated constructor stub
text1 = new TextField(10);
text2 = new TextField(10);
text3 = new TextField(10);
setLayout(new FlowLayout());
add(text1);
add(text2);
add(text3);
Policeman police = new Policeman();
text1.addActionListener(police); //内部类的实例做监视器
text1.addActionListener(new ActionListener()
{//和接口有关的匿名内部类的实例做监视器
public void actionPerformed(ActionEvent e) {
String number = e.getActionCommand();
int n = Integer.parseInt(number);
int m = n * n;
text2.setText(n + "的平方式:" + m);
}
});
setBounds(200, 200, 200, 200);
setVisible(true);
validate();
}
class Policeman implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String number = e.getActionCommand();
int n = Integer.parseInt(number);
int m = n*n*n;
text3.setText(n+"的立方是:"+m);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
{
myjava win7 = new myjava();
}
}
}