面向对象中的get,set深层理解(望高手赐教)

面向对象中的get,set深层理解(望高手赐教)在面向对象编程中,往往要编写实体类,往往就要给字段封装成属性,javac#等可以通过get,set来实现:我就不懂,为什么... 面向对象中的get,set深层理解(望高手赐教)

在面向对象编程中,往往要编写实体类,往往就要给字段封装成属性,java c#等可以通过get,set 来实现:
我就不懂,为什么都这样搞,设成public 一样对字段的正常访问,读取和赋值,用get,set大部分也就做了这些事。好像没有做其他的操作,这就是所谓的封装??用get,set好像没有什么大的用处,反而觉得代码冗余。
我自己设想到了一个:是不是怕直接获得值,从而操纵指针啊,对数据进行恶意读写??
也许涉及到一些底层的东西。
困惑很久,希望对这些了解的前辈们,不吝赐教,万分感谢!
展开
 我来答
opensky010
2009-03-11 · TA获得超过466个赞
知道小有建树答主
回答量:981
采纳率:0%
帮助的人:296万
展开全部
这种实体往往是为了对db的关系数据进行持久,所谓的封装也只是将字段以对象的形式封装起来提供调用,在某种程度上来说和定一个一个变量没什么太大的区别。但是封装后可以很好的说明字段是某个实体的字段。比较容易理解。我认为这个get,set也就是如此了

至于如果针对字段拒绝get,set基本上我觉得很少用的到。一定要说的话,就是是对象的部分数据受到保护,不被随意的读写,但其实还是有办法去读写这些变量的。
kkxxll1984
2009-03-11 · TA获得超过810个赞
知道小有建树答主
回答量:180
采纳率:0%
帮助的人:88.7万
展开全部
你说对了

这是封装的优点所在

可以实现对属性的数据访问限制
增强了程序的可维护性

可以在 get set方法中进行设置,实现实体类的某些属性的只读只写

虽然代码显得多了很多

但是现在 IDE都可以直接生成 也没有什么麻烦的

你用的多了 你就会体会 它的好处了

不过其实 这些东西 在实际开发中 用处不大

也很少 在里面 写代码

整个实体类 都可以从 数据库表直接 生成过来

所以 这里 没必要太过关注 理解一下 封装的思想就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友37bdc142c
2009-03-11 · TA获得超过812个赞
知道小有建树答主
回答量:1229
采纳率:0%
帮助的人:487万
展开全部
很负责的告诉你,你完全理解错了,javabean的特点就是封装,你写的变量之前用 private来修饰,当你要给他赋值和获取他的内容时就要使用set和get方法
这样使得数据的重用性.
比如你写一个增加的方法,需要增加很多对象,你需要把这些对象都传到方法里,比如:public void insert(int id,String name,int age等等。。。)你在数据层再把他们取出来很麻烦,你用了set和get方法就是方便,查询也是一样,不可能把查到的数据都一一赋给一个变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
储利玉2i
2009-03-11 · TA获得超过1157个赞
知道小有建树答主
回答量:954
采纳率:0%
帮助的人:484万
展开全部
好好理解一下面向对象编程里面的封装的含意:
封装 (encapsulation)
隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别.
封装 (encapsulation)
封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过 外部接口,一特定的访问权限来使用类的成员。
封装在网络编程里面的意思, 当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络,其中每一层对收到的数据都要增加一些首部。
封装的大致原则
1把尽可能多的东西藏起来.对外提供简捷的接口.
2把所有的属性藏起来.
例如,在抽象的基础上,我们可以将时钟的数据和功能封装起来,构成一个时钟类。
按c++的语法,时钟类的声明如下:
class Clock
{
public: //共有成员,外部接口
void SetTime(int NewH,int NewM,int NewS);
void ShowTime();
private: //私有成员,外部无法访问
int Hour,Minute,Second;
}
可以看到通过封装使一部分成员充当类与外部的接口,而将其他的成员隐蔽起来,这样就达到了对成员访问权限的合理控制,使不同类之间的相互影响减少到最低限度,进而增强数据的安全性和简化程序的编写工作。

参考资料: http://baike.baidu.com/view/154910.htm

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huziu235
2009-03-11
知道答主
回答量:30
采纳率:0%
帮助的人:24.9万
展开全部
可以控制变量的读写权限。
如:其他类只读
private int i;
piblic int getI(){
return this.i;
}
private void setI(int i){
this.i = i
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
路瓶子
2009-03-11 · 超过31用户采纳过TA的回答
知道答主
回答量:174
采纳率:0%
帮助的人:112万
展开全部
哈哈哈哈哈哈哈哈哈哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式