Bean这个规范的一个牢骚,大家给个答复
bean里面getter和setter一说,我就一直没搞明白到底有什么用。又要数据隐藏,又要去操作它(那你还隐藏它干什么)。这不是多此一举么。直接public属性不就行了。如果说它为IDE方便,那我就觉得这成了悲哀啦。
考虑可能不成熟,可能是我还没有领悟到大师们的真正境界吧。
不才大家发发意见。
------解决方案--------------------就是说外部的其它代码不能直接操作这个变量,只能通过gettter、setter方法访问,所有外部代码对类变量的操作都被限定在setter、getter方法中了。
主要就是这方面的意义。
在开发中慢慢体会其中的含义吧
------解决方案--------------------隐藏是对外隐藏,如果bean中的 属性不是private,那么外界就可以操作它。
这样做的原因,是使bean具有独立性,我的东西,只能通过我提供的方式来
访问。一定程度上,可使代码具有规范性。否则,可能百花齐放了。
------解决方案--------------------对于变量安全很重要 而且楼主如果你用JSF就知道了 除非你需要特定赋值 否则的话都不会去使用set和get方法 JSF会自动调用
------解决方案--------------------简单的说,get和set方法里面可以不只有一句话,可以包括
空指针处理、异常处理、逻辑判断等功能,仅仅一个属性肯定是做不到的。
从功能上看,函数是类提供给外界的接口,外界通过函数来操作对象,也就是说,这个类提供什么样的函数,外界最多就只能完成什么样的操作。如果一个private的属性只提供get而没有set,你就只能读。
------解决方案--------------------我是这么理解的。
get和set方法可以封装一些对对象的公共操作。
比如我有一个aaa的密码,放到数据库里面希望加密,就可以把加密方法写在set里面,把解密方法写在get里面,而不是每次操作密码字段都要去加密和解密处理。
------解决方案--------------------这里面包含着面向对象思想:)
------解决方案--------------------个人觉得用封装的好处多多
如果程序出现错误,查找起来也比较方便!
------解决方案--------------------举个例子
如果不set,get
public List a;
然后某地方调用:
a.add之类,可能会
空指针异常 而如果
private List a;
public List getA(){
if(a==null)
return new ArrayList();
}
这样getA().add();就不会报异常了
------解决方案--------------------==============================
brooksychen(初晨之阳)
简单的说,get和set方法里面可以不只有一句话,可以包括空指针处理、异常处理、逻辑判断等功能,仅仅一个属性肯定是做不到的。
从功能上看,函数是类提供给外界的接口,外界通过函数来操作对象,也就是说,这个类提供什么样的函数,外界最多就只能完成什么样的操作。如果一个private的属性只提供get而没有set,你就只能读。
===============================
我也有楼主的疑惑,如果非要有个理由,目前的理解也就和brooksychen差不多了。
------解决方案--------------------bean里属性私有 get set方法公有就是向外面的声明:我的地盘我做主,想用我的属性,就要用我提供的方法.
属性公有很容易出bug的