java getter和setter作用是什么?

在java中经常是声明一个私有的变量,然后给出他们的公共的getter和setter方法。比如:privateStringname;publicStringgetName... 在java中经常是声明一个私有的变量,然后给出他们的公共的getter和setter方法。比如:private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
请问:这样做的好处是什么?为什么要定义getter和setter呢。直接public String name;这样不是省去很多麻烦吗?

注:希望真正懂的给个明确的答案。在浏览一些技术方面的帖子的时候发现有些人根本就不懂(也许是只学了点皮毛),就那里里信口开河胡说乱说。
展开
 我来答
写在枫叶上的故事
2018-12-10 · TA获得超过2.6万个赞
知道答主
回答量:164
采纳率:0%
帮助的人:2.6万
展开全部

一、getter

1、按照客户的期望返回格式化数据。

2、控制服务的顺序(例如只有当连接建立时getter方法才返回相应实例)。

二、setter

1、可以限制和检验setter方法传入的参数。

2、隐藏对象内部数据结构。

3、保持对象在每个状态的完整性。

setter方法用来去设置该变量的值,然后在用getter方法去调用该变量的值。

setter用来改变数据成员的值时,操作必须由这个对象自己来触发public用来改变数据成员的值时,操作可以由任何对象来触发这是面向对象的封装,总之就是自己的数据成员,只对自己可见,也只有自己才能改变其值。

扩展资料

java使用getter和setter的好处:

1、实现了专业的分工。将能实现某一特定功能的代码封装成一个独立的实体后,各程序员可以在需要的时候调用,从而实现了专业的分工。

2、隐藏信息,实现细节。通过控制访问权限可以将可以将不想让客户端程序员看到的信息隐藏起来,如某客户的银行的密码需要保密,只能对该客户开发权限。

3、用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。

百度网友ca4f62c
2018-12-07 · TA获得超过3129个赞
知道答主
回答量:20
采纳率:0%
帮助的人:3153
展开全部

get和set就是java中的封装技术。首先我们需要知道,一旦一个变量被“private”私有化了,那么在其他类文件就不能引用(使用)它。使用“private”是把被使用的变量保护起来,使别人不知道这个变量的名称是什么,有保护的作用。

而set和get就是在和“private”私有化的变量在同一个类文件中,set和get是“public”共有的,也就是说这两个方法是可以被在其他类文件中使用的。set方法的意思是定义一个方法含一个参数,把所含有的这个参数(后期自己设置)赋给你需要私有化的变量(在当前类中设置),相当于充当媒介,外界想要改变已经“private”私有化的变量,必须要在其他类文件中给方法set一个参数,通过set变量来更改。

set的名字可以随便取,如此一来其他类中根本不知道在另一个类中“private”私有化的变量名称,也不能直接更改。get则是获取这个私有化的变量值。是定义了一个带返回类型的方法,这个返回类型就是已经被你私有化变量的类型。以题目为例,你私有化了String类型的name,那么get方法的返回类型就是String类型,同时返回当前类中name的值。

这样一来在其他类文件中,可以通过set方法来给和更改另一个类中的加密变量值,可以通过get来获取另一个类中加密的变量值,而这个被加密的变量则变量名始终没有人知道。

扩展资料:

“java中的封装”是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信息隐藏技术,在java中通过关键字private,protected和public实现封装。

封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。

参考资料:百度百科-java中的封装

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
main_inf
推荐于2017-10-05 · TA获得超过1575个赞
知道小有建树答主
回答量:811
采纳率:100%
帮助的人:536万
展开全部
其实说得明白点吧,这只是java类(特别的很多时候是一个javabean)的两个方法,以提供对某个变量(字段)设置与访问的两个入口,在很多时候也正如你说,跟定义成public是没有两样的,具体的原因在于:
(1)由于很多框架都是调用这两个方法来实现沟通,这是一种习惯了。
(2)get/set方法也不一定只是简单的作一个赋值,或一个返回值吧,在这里可以作一些权限的控制,比如不是每个角色都可以赋值的。再比如返回的值不一定是值本身,可以是经过处理了的,比如加密,这用public定义是不能作到的。

批斗一下一些说法:public不好?那干脆去掉好了咯。实现隐藏?你用get/set不是一样可以取到它,设置它,这如何叫隐藏?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liqirui_1990
2009-09-04 · TA获得超过139个赞
知道答主
回答量:52
采纳率:0%
帮助的人:60.8万
展开全部
定义为private 是为了实现数据的隐藏和封装;

而set get 方法提供了类与外部的接口;

在大型软件中这是很有必要的,它有利于代码的维护

举个例子,

一个父类有多个子类(甚至还有间接子类),程序代码中,子类是不能直接访问父类的private属性的;这时提供的set get方法是很有必要的

诚然,若将父类的属性声明为protected,在子类中就可以直接访问了,但是这种方法破坏了数据的隐藏和封装原则,关键是不利于代码的维护,如果父类中的一个属性改名了,那么在子类中用到该属性名的代码,要发生大范围的修改,而前面的private,set,get方法就比较好,对代码只需小范围的修改,一般都是这么用的,这是一个良好的编程习惯

这是我的一点理解,希望有所帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
躲错气9
2009-09-04 · TA获得超过684个赞
知道小有建树答主
回答量:936
采纳率:0%
帮助的人:598万
展开全部
哎,这样写叫实体类,叫javabean

JavaBean严格来说能重用的类才叫javabean,但通常指的是与数据库字段相对应的字段,然后写成get和set方法

目的很简单嘛!数据的转载于传输嘛!

如果把数据库里面的数据给 封装进集合,然后在从集合里面取值的话,变量就只能取一次啦,因为每次循环的时候值都被覆盖啦!方法就不一样啦,对象.方法,你想怎么用就怎么用,只要集合在,里面的数据就不会丢的!

自己去试下,把数据库里面的记录读取出来分别用变量与对象去封装 看看谁方便,谁好用,谁的优点多。

去问下老师,同学就可以啦,而且还很直观?提问浪费资源分啊。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(13)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式