首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

private仿佛也不安全

2013-09-29 
private好像也不安全啊本来private的意义在于保护,类实例只能通过public方法对其修改。但是通过public方法

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方法给调用的,不然不能与你的业务系统进行交互,开不开放访问调用取决于你具体的业务需求,你是可以控制的,安全性也不成问题。

热点排行