6-4 内部类
package innerclass; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Timer; public class InnerClassTest { public static void main(String[] args) { // TODO Auto-generated method stub } /** * 1. * 内部类可以访问该类所定义作用域的数据 * 对同一个包里的其他类隐藏起来 * 编写大量代码时,使用匿名内部类更便捷 * * * * 2.编译器会给内部类一个默认构造方法 * * * 3.内部类的特殊语法规则 * ActionListener listener = this.new TimePrint(); * if (TalkingClass.this.beep) { * * * 内部类中不能有静态方法 * * * * 内部类是否有用,安全,必要? 。。。。。略 */ } class TalkingClass{ private int intervel; private boolean beep; public void start(){ // ActionListener listener = this.new TimePrint(); ActionListener listener = new TimePrint(); new Timer(intervel, listener).start(); } public class TimePrint implements ActionListener{//内部类 /* * 编译器会生成一个默认的构造器 * public TimePrint(TalkingClass talkingClass){ outer = talkingClass; }*/ /* @Override public void actionPerformed(ActionEvent e) { if (beep) {//outer.beep Toolkit.getDefaultToolkit().beep(); } }*/ //内部类的特殊语法规则 @Override public void actionPerformed(ActionEvent e) { if (TalkingClass.this.beep) { Toolkit.getDefaultToolkit().beep(); } } } }