修改了一个构造函数为peivate,防止外部实例化空指针