Я недавно читаю Java Core.Вот код из раздела 6.4.5 Java Core Volume I:
public void start(int interval,boolean beep){
class TimePrinter implements ActionListener{
public void actionPerformed(ActionEvent event){
System.out.println("At the tone,the time is " + new Date());
if(beep){
Toolkit.getDefaultToolkit().beep();
}
}
ActionListener listener=new TimePrinter();
Timer t=new Timer(interval,listener);
t.start();
}
Что я не понимаю, так это две вещи:
Во-первых, в книге написано The listener
ссылка передается конструктору javax.swing.Timer
, таймер запускается, и метод start()
завершается.На этом этапе переменная звукового параметра метода start больше не существует. Почему пропадает параметр beep
?
Во-вторых, при выходе из метода start(interval,beep)
объект Timer
(а именно, т) существует?Большое спасибо!