当前访客身份:游客 [ 登录  | 注册加入尚学堂]
直播

超级八卦达人

拥有积分:76
这家伙太懒,还没有签名!

博客分类

笔记中心

课题中心

提问中心

答题中心

解答题中心

Java中的get()和set()方法

超级八卦达人 发表于 2年前 (2014-07-25 16:48:17)  |  评论(0)  |  阅读次数(10064)| 0 人收藏此文章,   我要收藏   
摘要 为什么要封装?使用get和set方法,把简单的事情搞的很复杂了。直接把变量定义为public不就可以了吗?为啥要封装呢?
  1。set和get用于private变量的封装,一般只用在封装里,当然它也可以用2所说的。     2。get和set起源于它的中文翻译,获取和设置,主要是便于理解。比如获取XX值和设置XX值。这样不仅方便自己看,别人也很容易理解。所以也不仅仅用于封装(此情况为自己的程序方法命名需要)。    面向对象中,想对类的成员变量设置访问一些权限,将该字段设置为private,这样别的类就不能访问了,然后在该内定义两个方法,一个专门用于获取,一个用于修改,这样,在你不想让别人乱动该字段的时候,就在该方法内写一些限制条件。而为了规范起见(团队开发需要),就根据人家老外的习惯,将方法名设置为set+字段名,get+字段名(名字乱改没问题),既然规范了,那就是别人都叫这名了,于是,有些框架给对象赋值就有方法了,方法名称由get或set开始的又有private变量名的,就找出来调用(hibernate)。
    写get和set是强制性标准写法, 不单单是为了让其他程序员看懂 ,更重要的是为了让其他程序看懂 ,因为很多框架的代码取一个对象的属性值的时候, 只会调用get和set方法, 如果你不按标准的规则写成getXxx()这样 , 这些框架就完全无法识别你的方法了 这样在你的项目中几乎任何框架都不能使用了(hibernate框架就是这样使用)。     今天终于明白了为什么有get和set方法。
 使用get和set方法是为了程序的封装,为了其它的类可以使用(设置和获取)该类的私有方法。虽然明白了,但是还是不知道到底有什么好处。为什么要封装?使用get和set方法,把简单的事情搞的很复杂了。直接把变量定义为public不就可以了吗?为啥要封装呢?比如你想在 取值赋值 时 添加其他操作,那么直接在get set方法里添加就ok了,多方便
 回答:
 比如你想外部类只能get,只允许类内部赋值,那么只开放get方法就ok了.
 比如你想限制成员变量的可访问范围,用get set方法更加方便,编译时虚拟机还能自检.
 禁止直接对成员变量赋值 

封装的一个最主要的用途就在于:数据的安全性。如果像你所说的,所有的属性都用public来修饰,在操作性上是可行的。但是这样的数据时非常不安全的。
比如:你在定义浏览器中的默认的每一页中显示的数据为10行数据,你用public去修饰了,我就可以通过new一个类的对象去修改你的这个默认值。但是
你用private去修饰时(也就是对其进行了封装),你要setter和getter去改变,改变的只是你new出来的对象,原先的数据时没有变的,这
样才是安全的
分享到:0
关注微信,跟着我们扩展技术视野。每天推送IT新技术文章,每周聚焦一门新技术。微信二维码如下:
微信公众账号:尚学堂(微信号:bjsxt-java)
北京总部地址:北京市海淀区西三旗桥东建材城西路85号神州科技园B座三层尚学堂 咨询电话:400-009-1906 010-56233821
Copyright 2007-2015 北京尚学堂科技有限公司 京ICP备13018289号-1 京公网安备11010802015183