我想你首先要把OO和递归搞清。你的TryHandle类有两个字段,char型的c和TryHandle
型(注意)的next!而next又是一个 TryHandle,它又有c和next!......知道链表吗?
6 TryHandle
  c = a
  next ---->TryHandle
         5   c = b
             next ---->TryHandle
                   4    c = c
                        next ---->TryHandle                     
                               3   c = d                         
                                   next---> TryHandle                     
                                        2    c = e                       
                                             next--->TryHandle
                                                  1   c = d 
                                                      next=null
                                                              
上面是你在main方法创建的TryHandle类的对象t的示意图。你可看到每个
next都引用到不同的TryHandle实例!后面的聚合为前面的TryHandle实例。
你可在Forte for Java 4.0等IDE中调试,清楚地看到Call stack! 
在执行main方法中的System.out.println("t="+t);时,
调用t.toString()方法(请仔细研究,用到递归)。
  为什么会输出t=:a:b:c:d:e:f呢?!看上图和toSring()方法!
  t的c字段为a,s这时就为:a;next引用到一个TryHandle实例(我假称为next5),next
当然非空,于是就递归,执行next5.toString()! next5的字段c为b,s现在就为:a:b!
它的字段next又引用到一个TryHandle实例,非空,于是就递归......一直到next1
(假称),把:f连上,s就成为:a:b:c:d:e:f了,next这时为null,
不再递归,回溯,执行完毕!
    有任何意见,续贴或 [email protected]们相似。