一、内部类的说明
1、在类的内部再构建一个类,则类内部构建的这个累即为内部类
2、内部类可以访问外部类的private属性和方法
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
class TalkingClock { private int interval; private boolean beep; public TalkingClock(int interval, boolean beep) { this.interval = interval; this.beep = beep; } public void start() { TimePrimter listener = new TimePrimter(); Timer timer = new Timer(interval, listener); timer.start(); } public class TimePrimter implements ActionListener { @Override public void actionPerformed(ActionEvent actionEvent) { System.out.println("At the tone, time is " + Instant.ofEpochMilli(actionEvent.getWhen())); if (beep) Toolkit.getDefaultToolkit(); } } }View Code
如上的if (beep) Toolkit.getDefaultToolkit(); 这里的beep就属于外部类TalkingClock的属性
3、有时候我们可能会遇到临时变量跟外部类的变量冲突的时候我们要显示的指明是外部类的参数,那么应该指明:TalkingClock.this.beep 类似这种的方式:OutClass.this.outparam
上述的例子如果要显示指明beep属于外部类:if (TalkingClock.this.beep) Toolkit.getDefaultToolkit();
4、内部类不能有静态的方法,但是可以有静态的属性并且该属性必须为final;否则编译不通过
标签:部类,java,内部,TalkingClock,interval,beep,public From: https://www.cnblogs.com/czwlinux/p/16740150.html