增加了内部类和测试main函数