日期:2014-05-20  浏览次数:20644 次

private好像也不安全啊
   本来private的意义在于保护,类实例只能通过public方法对其修改。但是通过public方法拿到private对象的引用,即可对其进行修改,如:

public Class Student{
   private int age;
   public void setAge(age){....}
   .....
}

public Class StudentManager{
    private Student stu;
    public Student getStudent(){return stu;}
    .....
}

main:
  StudentManager sm = new StudentManager();
  Student  stu=sm.getStudent();
  stu.setAge(10);

    通过getStudent()拿到private的stu之后,就可以对stu进行随便修改,是不是违背了private的本意??




------解决方案--------------------
LZ可能要深入一下Java的封装性,一般在类中的成员变量是private的,如果需要开放给外部调用,则可以提供public方法,外部只能通过这个public方法才能访问这些成员变量,这个不存在安全性的问题,如果你实在不希望外部更改这些成员变量,可以不提供public方法,或者也是privatede,只能你类内部使用,不过一般的业务需求是需要你提供这些public方法给调用的,不然不能与你的业务系统进行交互,开不开放访问调用取决于你具体的业务需求,你是可以控制的,安全性也不成问题。