java吧 关注:1,263,582贴子:12,765,510
  • 1回复贴,共1

java有get和set方法的private数据成员与public数据成员的区别?

只看楼主收藏回复

1.主要是如果这个类被继承,那个private成员对于派生类是不可见的,如果设为public就无法保护基础类的特有字段了。
2.JavaBean的属性一般都要设置成private,并根据需要提供getter/setter,这样可以提供更高级的控制(这时可以变换形式,比如不用public改用protected,再比如只提供getter不提供setter)实现的高级功能有只读、只写、数据转换、加密、继承时改写等,而这些是你直接操作变量 无法完成(!!!) 的。
另外有些IDE或框架也要求实现这种方法来自动匹配.
3.是这样的.private 是不让别人用, public 是让别人用, 但是有一种需求是让有的人用而让另外一些人不能用. 这时private/public的功能就出现短板了. 这时就有了set/get方法的用武之地了. 我们可以在set/get方法是设置, 如下:public set(某某某){
if(你是一些人){
你可以设置
}else{
对不起, 你没有设置的权限.
}
}
可以说: get/set+private 的功能完全包含了private/public 的功能.
这是我在网上看到的一些解释,还有什么区别吗?


1楼2013-08-04 17:09回复
    一种规范
    规范就是必须
    像我们用的框架的一些功能都是利用setXXX和getXXX来实现的


    IP属地:北京2楼2013-08-04 18:34
    回复