以前在上学的时候老师将在类中变量定义为private之后生成set与get方法,这是体验了java封装特性.
工作了一段时间突然想起这个问题.
既然我们用set与get方法用来存取bean中的属性值,为什么不可以直接将变量设置为public?
我自己给出的解释
1.可以在set与get方法中可以对传出,传入的属性值进行处理.
2.在团队开发中有些时候一个bean不只一个人用到,需要设置一些访问权限,比如只可以set不可以get.
但是又有一个问题了,如果一个简单的bean中在set与get方法中不进行任何处理,别人也不会用到这个bean
那set与get方法的存在还有意义吗?

解决方案 »

  1.   

    把成员变量设为 public 的话,那这个变量所处的类对于这个变量就没有可控性。如果使用 get/set 的话,可以很好地对这个变量进行控制。想得再远点的话,或许可以想到:如果需要在设置或获取这个变量的值时做些其他的工作(比如记录些日志什么的),那么直接访问 public 成员变量就是做不到了!你不想到目前的程序有无 set/get 都是没有影响的。如果你能保证代码写好后就永远不会去动的话,那么面向对象也是没有任何用处的,直接使用面向过程写这个程序就可以了。
      

  2.   

    也就是说,set与get方法的存在是为了降低程序的耦合度?