Java核心技术-内部类(上)
Day7
内部类
定义在另一个类中的类
- 内部类🙆可以都对同一个包中的其他类隐藏
- 内部类可以访问定义这个内部类的作用域中的属性,包括私有属性
内部类总有一个隐式引用,指向创建它的外部类对象
package cn.gyk;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.time.Instant;
/**
* @author xg
* @version V1.0
* @date 2022/5/28 21:36
*/
public class InnerClassDemo {
public static void main(String[] args) {
TalkingClock talkingClock = new TalkingClock(1000,true);
talkingClock.start();
JOptionPane.showMessageDialog(null,"Quit program?");
System.exit(0);
}
}
class TalkingClock{
private int interval;
private boolean beep;
public TalkingClock(int interval,boolean beep){
this.interval = interval;
this.beep = beep;
}
public void start(){
var listener = new TimePrinter();
var time = new Timer(interval,listener);
time.start();
}
public class TimePrinter implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("At the tone,the time is"+ Instant.ofEpochMilli(e.getWhen()));
if(beep)
Toolkit.getDefaultToolkit().beep();
}
}
}
内部类中所有声明的静态变量必须是final,内部类中不允许又static方法
浙公网安备 33010602011771号