匿名内部类,最常见就是在编写响应事件的时候用到,如果你定义了某个匿名inner class,并且可能会用到定义于匿名内部类之外的对象,则外部对象必须是final。我在编写程序时已经用到了如此规定,现在才知道为什么这么编写:
//..
JMenuItem dateItem = new JMenuItem("添加");
menu.add(dateItem);
SelectData seledate = new SelectData();
dateItem.addActionListener(seledate);
//...
内部类
public class SelectData
implements ActionListener {
public void actionPerformed(ActionEvent e) {
final JDialog jlog = new JDialog(sframe);
}// action
}
Non-static inner class拥有对enclosing class所有成员的访问权限,static inner class无法访问enclosing class的对象。static inner class 可以置于interface里面。