java为什么要对类进行封装