bean里面getter和setter一说,我就一直没搞明白到底有什么用。又要数据隐藏,又要去操作它(那你还隐藏它干什么)。这不是多此一举么。直接public属性不就行了。如果说它为IDE方便,那我就觉得这成了悲哀啦。
考虑可能不成熟,可能是我还没有领悟到大师们的真正境界吧。
不才大家发发意见。

解决方案 »

  1.   

    你还不明白private型数据的优点。
      

  2.   

    就是说外部的其它代码不能直接操作这个变量,只能通过gettter、setter方法访问,所有外部代码对类变量的操作都被限定在setter、getter方法中了。主要就是这方面的意义。在开发中慢慢体会其中的含义吧
      

  3.   

    隐藏是对外隐藏,如果bean中的 属性不是private,那么外界就可以操作它。
    这样做的原因,是使bean具有独立性,我的东西,只能通过我提供的方式来
    访问。一定程度上,可使代码具有规范性。否则,可能百花齐放了。
      

  4.   

    chszs(老刀)  private 根本就是隐藏数据么。还有什么? 那你隐藏了数据有要操作他非要搞个get 和 set 我就觉得这里别扭。imA(男的不会,会的不男)  这是结果,我想知道这么做的原因是什么。
    另外在这么做更能体现(更像)面向对象的做法,我能理解到这一步,但是我总是觉得麻烦。
      

  5.   

    如imA(男的不会,会的不男) 所说
    还可以在getter,setter里对数据做一些处理
      

  6.   

    给你点代码看看: 
      private String searchtype = "all";  public String getSearchtype() {
        return searchtype;
      }  public void setSearchtype(String searchtype) {//只允许三种查询模式
        if ("all".equals(searchtype) || "title".equals(searchtype) ||
            "message".equals(searchtype)) {
          this.searchtype = searchtype;
        }
      

  7.   

    对于变量安全很重要 而且楼主如果你用JSF就知道了 除非你需要特定赋值 否则的话都不会去使用set和get方法 JSF会自动调用
      

  8.   

    CrazyGou(阿狗)(...) 和pigo()  也有点一定道理
    jsf我正在研究  我转不过弯来的地方就在于 这种写法单单是为了迎合应用么
      

  9.   

    简单的说,get和set方法里面可以不只有一句话,可以包括空指针处理、异常处理、逻辑判断等功能,仅仅一个属性肯定是做不到的。从功能上看,函数是类提供给外界的接口,外界通过函数来操作对象,也就是说,这个类提供什么样的函数,外界最多就只能完成什么样的操作。如果一个private的属性只提供get而没有set,你就只能读。
      

  10.   

    我是这么理解的。
    get和set方法可以封装一些对对象的公共操作。比如我有一个aaa的密码,放到数据库里面希望加密,就可以把加密方法写在set里面,把解密方法写在get里面,而不是每次操作密码字段都要去加密和解密处理。
      

  11.   

    to njqibin(杉树林):第一次在Java区见到你 :)
      

  12.   

    举个例子
    如果不set,get
    public List a;
    然后某地方调用:
    a.add之类,可能会空指针异常
    而如果
    private List a;
    public List getA(){
       if(a==null)
            return new ArrayList();
    }
    这样getA().add();就不会报异常了
      

  13.   

    楼上的说得都很有道理,我就很喜欢这setter 和 getter,呵呵
      

  14.   

    ==============================
    brooksychen(初晨之阳)简单的说,get和set方法里面可以不只有一句话,可以包括空指针处理、异常处理、逻辑判断等功能,仅仅一个属性肯定是做不到的。从功能上看,函数是类提供给外界的接口,外界通过函数来操作对象,也就是说,这个类提供什么样的函数,外界最多就只能完成什么样的操作。如果一个private的属性只提供get而没有set,你就只能读。
    ===============================我也有楼主的疑惑,如果非要有个理由,目前的理解也就和brooksychen差不多了。
      

  15.   

    bean里属性私有  get set方法公有就是向外面的声明:我的地盘我做主,想用我的属性,就要用我提供的方法.属性公有很容易出bug的