在做thinking in java的一个习题时,遇到了这个问题。想了很久,不得答案。

解决方案 »

  1.   

    对于属性而言,在构造方法中显示初始化可以处理异常。其它的没有本质的区别。比如一个属性Socket sc;
    你可以在构造方法中 try{this.sc = new Socket("ip",port);}catch(Ex e){}
    但你在属性定义时就无法这样处理。除非在初始化块中。那还不如放在构造方法中更直观。另外在属性定义时直接初始化可发一次性初始化好,而在构造方法中初始化,如果构造方法有多个
    你要在每一个构造方法中都把初始化的代码写一遍,但这不是本质问题,本质问题就是为了处理异常。