可以将对象的构造从构造函数中分离出来,如果不适用init,每次执行init中的初始化代码的机会只有调用该构造函数一次,而如果将这个初始化的代码分离到init函数中,则会有无数次的调用这些初始化代码的机会。这样一来我们甚至可以仅仅先使用默认构造函数创建一个对象,然后再为这个对象进行初始化操作。