首先,您永远不需要匿名课程.您始终可以创建命名类.当您刚开始时,了解匿名类的主要原因是在您阅读的代码中识别它们.
如果你想创建一些只使用一次的对象,那么你可以使用一个匿名类(所以给这个类型命名,把它放在自己的文件中等等是不值得的).大多数情况下,它们在事件驱动编程中派上用场,例如使用Swing.您的事件处理程序通常是一次性的,特定于您将其插入的控件,因此没有必要给它起一个名字.
对于事件处理程序,通常需要访问周围的对象,因此方便事件处理程序成为内部类,并且它对周围上下文的引用意味着它根本不可重用.
Oracle Java教程中有很好的开始示例.java.io包中的类FileFilter和FilenameFilter通常与匿名类一起使用,以指定过滤器应返回的文件.
在Java 8中,lambdas为您提供了一种仅使用一种方法创建一次性类的实例的更好方法.