java getter和setter作用是什么?

作者&投稿:兀有雅 (若有异议请与网页底部的电邮联系)
JAVA中为什么要用“生成getter和setter”这个呢???有什么作用吗?~

这个体现了java语言的一个特性:封装,封装有利于程序的安全性,声明private的成员变量,然后生成生成getter和setter方法去获取或者改变!

用代码讲解一下:publicclassStudent{Stringname;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubStudents1=newStudent();s1.setName("小明");System.out.println("学生的姓名为:"+s1.getName());}}上面的意思是创建一个学生类,声明一个name变量,并给了它getter和setter方法。先说setter方法,刚开始创建name变量时没有赋值,后面用这个方法给他赋值“小明”再说getter方法,name变量有了值“小明”后就可以用这个方法把它调出来。

一、getter

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

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

二、setter

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

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

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

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

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

扩展资料

java使用getter和setter的好处:

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

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

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



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中的封装



其实说得明白点吧,这只是java类(特别的很多时候是一个javabean)的两个方法,以提供对某个变量(字段)设置与访问的两个入口,在很多时候也正如你说,跟定义成public是没有两样的,具体的原因在于:
(1)由于很多框架都是调用这两个方法来实现沟通,这是一种习惯了。
(2)get/set方法也不一定只是简单的作一个赋值,或一个返回值吧,在这里可以作一些权限的控制,比如不是每个角色都可以赋值的。再比如返回的值不一定是值本身,可以是经过处理了的,比如加密,这用public定义是不能作到的。

批斗一下一些说法:public不好?那干脆去掉好了咯。实现隐藏?你用get/set不是一样可以取到它,设置它,这如何叫隐藏?

定义为private 是为了实现数据的隐藏和封装;

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

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

举个例子,

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

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

这是我的一点理解,希望有所帮助

哎,这样写叫实体类,叫javabean

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

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

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

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

去问下老师,同学就可以啦,而且还很直观?提问浪费资源分啊。。。


乌拉特中旗18221874143: java getter和setter作用是什么? -
哀莺抵克: 一、getter 1、按照客户的期望返回格式化数据. 2、控制服务的顺序(例如只有当连接建立时getter方法才返回相应实例). 二、setter 1、可以限制和检验setter方法传入的参数. 2、隐藏对象内部数据结构. 3、保持对象在每个状态的完整性....

乌拉特中旗18221874143: java里setter和getter是什么? -
哀莺抵克: 在封装属性时,用getter可以从数据库中取到数据,setter可以从页面中得到相应的数据.这就是ssh和ssh2的强大.

乌拉特中旗18221874143: Java中setter 和getter方法有什么作用?什么时候拿出来用? -
哀莺抵克: 由于变量是私有的、设置公共的getter、setter方法提供给外部调用getter和setter还用于spring框架中、提供注入...意义非常的大...

乌拉特中旗18221874143: 请问 java 中的方法 一个 getter method. 一个 setter method. getter方法是干什么的?请详细解释一下谢谢 -
哀莺抵克: getter和setter多用于封装,封装的类的属性只能用getter和setter来访问,这样子提高安全性保证数据的有效性.比如声明一个Person类 class Person { private String name; private int age; public void setName(String sname) { this.name=sname; } ...

乌拉特中旗18221874143: java里getter and setter是什么?什么时候需要调用这两个方法?通俗举例解释一下 -
哀莺抵克: 类中变量属性一般为private.这里之所以将变量属性设为private是为了引用该类时保证数据被其他类引用,提高数据的安全性.结合java的封闭性和安全性,不难看出这样这些变量按道理来说像是被封闭在该类里,为了引用这些变量,这里我们使用了set和get方法去操作变量(get用来取值,set用来修改变量值),既能提高封装型,也不失安全性. 打个比方,你想知道朋友在不在家,一般的做法是通过打电话询问或者去朋友家敲门询问(GET),如果直接查看变量就相当于直接去朋友家破门而入,然后看朋友在不在家,这是极不安全的行为

乌拉特中旗18221874143: 在java中怎样用getter和setter方法 -
哀莺抵克: getter setter 是实体里面的 就初始化个实体出来 查询数据就getter 插入数据就setter

乌拉特中旗18221874143: java 中为什么用setter getter方法 -
哀莺抵克: setter和getter是用于封装的,一般会把类变量生命成private,这样的话只有类成员自身可以直接访问这个变量,而此类外部就不能直接访问,于是getter和setter就构成了从类成员外部访问这些变量的手段.因为getter和setter方法是public的,可以从类成员外部进行访问,所以我们在需要取得这个length的值就可以用getter,要改变值就用setter.set方法中int len是方法需要的参数.调用方法的时候要在setLength()的括号里写一个int类型的值或变量,否侧编译会报错.作用就是,把这个对象的length设置为括号里面的int的值.

乌拉特中旗18221874143: JAVA中的setter//getter()方法是什么意思?
哀莺抵克: 用代码讲解一下: public class Student { String name; public String getName() { return name; } public void setName(String name) { this.name = name; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub...

乌拉特中旗18221874143: JAVA 中get()和get()的用法,和意义? -
哀莺抵克: get就是你从它那里得到, set就是你要给与它值, 比如一个冰箱作为对象吧, 冰箱.get()就是你从冰箱里面拿出雪糕, 冰箱.set()就是你往冰箱里面放入雪糕, get就是你拿出雪糕了,然后雪糕由你来处理,怎么样都行,自己吃,给别人,随你 如果冰箱是空得,你怎么拿的出雪糕呢, 所以你最先要做得是放入,也就是你来给它雪糕.... 同样你给了它其实就是为你以后得拿来做铺垫... 总结set是给,get是拿.... 这样说够简单了吧,希望你能明白....

乌拉特中旗18221874143: java中set和get用法?
哀莺抵克: 我来回答: 通常set 和 get是属性的存取器,一般称getter/setter. set表示设置值,get表示获取值.在Eclipse中先定义好字段后,选择Source/Generate Getters and Setters可以根据选择自动生成这些方法,JBuilder中对应有BeanInfo的功能. get方法返回的类型必须为该字段对应的类型; set方法返回的类型一般为void,但传入的类型应为该字段对应的类型. 所以,jawdat的写法应该修改为: public String getName() {} public void setName(String name) {}

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网