求详细的解答[

解决方案 »

  1.   

    我在1楼的基础上补充一点。如果你写了带参数的构造方法,那么原来那个系统默认的无参构造方法就失效了,此时无参new,编译器会报错。
    除非你手工再把无参构造方法加上。
    例如:
    public class ClassA { public ClassA(String name) {
    System.out.println(name);
    } public static void main(String[] args) {
    ClassA classA = new ClassA();//编译器会报错 The constructor ClassA() is undefined
    }}
      

  2.   

    比如你写一个工具类,全是静态方法,实际上不需要创建这个类的对象,你可以写一个私有无参构造器,相当于关闭了这个类的手动对象创建(Spring等框架也无法创建bean)。
    这是Findbug等认为的良好编码习惯之一。