日期:2014-05-20  浏览次数:20686 次

这样的内部类如何理解
import   java.awt.*;
import   javax.swing.*;
public   class     ChangingButtonIconTest   extends   JApplet
{
static   class   TriangleIcon   implements   Icon
{
static   class   State
{
public   static   final   State   NORMAL=   new   State();
public   static   final   State   PRESSED   =   new   State();
public   static   final   State   ROLLOVER   =   new   State();
private   State(){}
}
State   state;
Color   color;
public   void   TriangleIcon(Color   c,State   state){
color   =   c;
this.state   =   state;
}

不明白为何要在State类内部创建NORMAL成员,NORMAL可以在State外部外创建吗?NORMAL会具有一些什么特征呢?

------解决方案--------------------
State类的构造方法是private State(){},是私有的,不能外部外创建,从这个代码看,NORMAL只是一个State实例,而State只是一个空类,没有什么特征可言
------解决方案--------------------
这不过是一个 enum 的模拟实现。就是说你可以通过
State.NORMAL 之类的方式来获得这几个常量。