首页>>百科常识

JAVA 中的 GET和SET方法是什么意思?为什么要这么使用?

今天宠物迷的小编给各位宠物饲养爱好者分享java set作用的宠物知识,其中也会对JAVA 中的 GET和SET方法是什么意思?为什么要这么使用?进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!

JAVA 中的 GET和SET方法是什么意思?为什么要这么使用?

别说的那么专业化了,理解都要半天。
就这么理解吧,面向对象中,想对类的成员变量设置访问一些权限,于是,就将该字段设置为private的,这样别的类就不能访问了,然后在该内定义两个方法,一个专门用于获取,一个用于修改,这样,在你不想让别人乱动该字段的时候,就在该方法内写一些限制条件。
而为了规范起见(团队开发需要嘛),就根据人家老外的习惯,将方法名设置为set+字段名,get+字段名(名字乱改没问题),既然规范了,那就是别人都叫这名了,于是,有些框架给对象赋值就有方法了,方法名称由get或set开始的又有private变量名的,就找出来调用。hibernate1框架就这样弄得,至于后面的版本是不是这样就不大清楚了。
JavaBean就是一个JAVA类,既然是JAVA类就不需要什么组件了,这玩意直接深入到虚拟机了的

JAVA 中的 GET和SET方法是什么意思?为什么要这么使用?

JAVA 中的 GET和SET方法是什么意思?为什么要这么使用?

别说的那么专业化了,理解都要半天。
就这么理解吧,面向对象中,想对类的成员变量设置访问一些权限,于是,就将该字段设置为private的,这样别的类就不能访问了,然后在该内定义两个方法,一个专门用于获取,一个用于修改,这样,在你不想让别人乱动该字段的时候,就在该方法内写一些限制条件。
而为了规范起见(团队开发需要嘛),就根据人家老外的习惯,将方法名设置为set+字段名,get+字段名(名字乱改没问题),既然规范了,那就是别人都叫这名了,于是,有些框架给对象赋值就有方法了,方法名称由get或set开始的又有private变量名的,就找出来调用。hibernate1框架就这样弄得,至于后面的版本是不是这样就不大清楚了。
JavaBean就是一个JAVA类,既然是JAVA类就不需要什么组件了,这玩意直接深入到虚拟机了的

java类中为什么设置set和get方法操作属性

当然java中这样做有它的原因:
1 将数据与行为分离,也就是java的面向对象的概念。
对象就是属性+行为,封装就是把对象的私有属性封装起来,只有通过自己公开的行为去改变(获得)对象内部的私有属性信息,而那些public的方**是面向其他对象的接口,只有通过接口去改变(获得)对象的私有属性
2 安全性 设想,你有一个Person类代表一个人,Person有一个char类型的sex字段表示性别,理论上,sex只接受两个值, 'M '和 'F ',但如果你把sex字段设为public,你很难限制你的用户只给它赋 'M '或 'F '值。将sex设为private,再用setSex()来设置性别,你就完全可以控制这种行为了。而且你还可以控制只能get不能set,或相反,但如果是public就不行了。别外有一点属性我们可能并不希望其他用户对我们的属性进行写操作,这个时候,可以直接不写setX方法。这就是只读属性了。
3 编码规范性 我们在设计类,或者作com组件时经常告诉其实coder,你只需要调用我的XX接口方法就可以了,内部我是怎么实现的,你不用管,如果面向特定的环境特定的时间段,直接将属性声明为public,让外部对象访问也未偿不可,没有面象对象思想时,我在写C语言程序时结构中的变量是可以随意被访问的,因为没有pulbic,private之分,现在我们是面向对象编程,我们需要在接口处作文章,而保护对象的私有属性,即安全性,只有通过对外公开的接口方法去访问在面向对象理论上认为是安全的。4 稳定性5 可扩展性6 便于维护

java类中的get,set属性的作用

已下是我的理解,我用例子说明一下
private int m;
public int getM(){
return m;
}
public void setM(int value){
m=value;
}
private的作用范围是自己本身这个.java文件,这样如果我不写get,set方法,那么其他类就无法操作m。如果像上面的例子,直接写成public int m
没什么大区别。
但是,如果我要在类取值的时候做一些操作,比如
public int getM(){
return m+1;
}
public void setM(int value){
m=value+1;
}
这样就不一样了。
而且越学到后面,就会越觉得这样的写法很好。
比如用Struts的时候,我们前台传数据给后台,以前赋值要自己用set方法手动设值,如果按我这样规范命名,默认数据就会写到m中。
这其实也是一个规则吧。
不知道我这样说算不算准确。

java中set函数问题

括号里的username是该方法接收过来的参数,
this.username表示本模型类中的username属性
this.username =username表示将接收过来的参数赋值给本模型类中的username属性;
至于大写,是java的一种书写规范吧,你小写也能通过编译。

在java中,set和get方法什么时候用?

get()和set()有一个好处,当输入.get(.set)时就能显示所有的属性。把所有设置都归纳起来,对于外部的使用都方便而已。 1、灵活性比如我们有一个Person类,我们给它设置一个属性name,但是我们希望在取名字的时候,不是只显示名字,而是把名字按我们的要求输出,比如”我的名字叫XX”,代码如下: public class Person { private String name; public String getName() { return "我的名字叫" + name; } public void setName(String name) { this.name = name; } }如上代码,以后我们只要定义一个person对象,并给他setName(xx),再getName的时候,就会显示我的名字叫XX。 2、安全性。比如我们的操作系统在新建用户或在共享文件的时候,经常会提示对针对某个用户的权限是什么,是只读还是只写还是可读写,这里的读写就好比get/set。 对于类来说,如果不使用set/get方法,直接用public定义某个属性,那么这个属性是可读可写的,如果你希望一个类的某个属性是只能读取,不能写入的时候,上面用public定义某个属性就不能满足了,但是我们可以使用private定义属性,再定义一个get方法,但是不定义set方法来实现。反之,只定义set,不定义get则表示该属性是只写不能读的。如下列代码: public class Circle { private double radius; private double pai = 3.14; public double getPai() { return pai; } public void setRadius(double radius) { this.radius = radius; } /** * 计算周长 */ public double getC() { return 2*pai*radius; } }我们定义了一个圆类,定义了属性半径和pai,半径我只提供写的方法,但是不提供读,而pai只提供读,但不能写,并提供了一个计算周长的方法getC。在实际项目中,对一些类的设计时,严谨的设计是要考虑哪些类是只读或是只写的。

java中的get 和set 是什么意思

get成员方法和set成员方法分别用于读取和设置私有变量的值 一般建议将有特殊限制的成员域的访问控制方式设置为私有模式。这时,可以添加两个成员方法分别读取和设置这个具有特殊限制的成员域的值。在这两个成员方法中,由于读取该成员域的值的成员方法的名称通常含有字符序列“get”,因此该成员方法通常简称为“get”成员方法;而设置该成员域的值的成员方法的名称通常含有字符序列“set”,因此该成员方法通常简称为“set”成员方法。 这样可以加强程序的封装性和安全性,外部程序不能直接访问私有变量,只能通过get成员方法和set成员方法读取和设置私有变量的值。 如:

java中集合类List和Set集合中的一些方法的具体如何使用和具体分析:

构造方法摘要
ArrayList()
构造一个初始容量为 10 的空列表。
ArrayList(Collection c)
构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
ArrayList(int initialCapacity)
构造一个具有指定初始容量的空列表。
方法摘要
boolean add(E o)
将指定的元素追加到此列表的尾部。
void add(int index, E element)
将指定的元素插入此列表中的指定位置。
boolean addAll(Collection c)
按照指定 Collection 的迭代器所返回的元素顺序,将该 Collection 中的所有元素追加到此列表的尾部。
boolean addAll(int index, Collection c)
从指定的位置开始,将指定 Collection 中的所有元素插入到此列表中。
void clear()
移除此列表中的所有元素。
Object clone()
返回此 ArrayList 实例的浅表复制。
boolean contains(Object elem)
如果此列表中包含指定的元素,则返回 true。
void ensureCapacity(int minCapacity)
如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。
E get(int index)
返回此列表中指定位置上的元素。
int indexOf(Object elem)
搜索给定参数第一次出现的位置,使用 equals 方法进行相等性测试。
boolean isEmpty()
测试此列表中是否没有元素。
int lastIndexOf(Object elem)
返回指定的对象在列表中最后一次出现的位置索引。
E remove(int index)
移除此列表中指定位置上的元素。
boolean remove(Object o)
从此列表中移除指定元素的单个实例(如果存在),此操作是可选的。
protected void removeRange(int fromIndex, int toIndex)
移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。
E set(int index, E element)
用指定的元素替代此列表中指定位置上的元素。
int size()
返回此列表中的元素数。
Object[] toArray()
返回一个按照正确的顺序包含此列表中所有元素的数组。
T[]
toArray(T[] a)
返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。
void trimToSize()
将此 ArrayList 实例的容量调整为列表的当前大小。

java类中的get,set属性的作用

已下是我的理解,我用例子说明一下
private int m;
public int getM(){
return m;
}
public void setM(int value){
m=value;
}
private的作用范围是自己本身这个.java文件,这样如果我不写get,set方法,那么其他类就无法操作m。如果像上面的例子,直接写成public int m
没什么大区别。
但是,如果我要在类取值的时候做一些操作,比如
public int getM(){
return m+1;
}
public void setM(int value){
m=value+1;
}
这样就不一样了。
而且越学到后面,就会越觉得这样的写法很好。
比如用Struts的时候,我们前台传数据给后台,以前赋值要自己用set方法手动设值,如果按我这样规范命名,默认数据就会写到m中。
这其实也是一个规则吧。
不知道我这样说算不算准确。

本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“JAVA 中的 GET和SET方法是什么意思?为什么要这么使用?

标签:宠物爱好