片头网站,网站建设服装在线商城实训报告,太原市建设局网站首页,沈阳公司建站1、Java中的属性和字段有什么区别#xff1f;
答#xff1a;Java中的属性(property)#xff0c;通常可以理解为get和set方法。
而字段(field)#xff0c;通常叫做“类成员”#xff0c;或 类成员变量”#xff0c;有时也叫“域”#xff0c;理解为“数据成员”
答Java中的属性(property)通常可以理解为get和set方法。
而字段(field)通常叫做“类成员”或 类成员变量”有时也叫“域”理解为“数据成员”用来承载数据的。
这两个概念是完全不同的。
2、属性和字段详解
◆◆字段filed
------------------------------------------------------------------------------------
类成员(字段)通常是在类中定义的类成员变量例如
public class A{
private String s 123;
}
我们可以说A类中有一个成员变量叫做sA类有一个字段s 。
字段一般用来承载数据所以为了安全性一般定义为私有的。
字段和常量描述了类的数据域当这些数据的某些部分不允许外界访问时
根据 “对象封装” 的原则应尽量避免将一个类型的字段以公有方式提供给外部。除了final修饰的常量。
一般将其设置为private类型。既然是私有那外界怎么访问呢? 当然是通过Java的属性方法
◆◆属性property
-------------------------------------------------------------------------
属性只局限于类中方法的声明并不与类中其他成员相关属于JavaBean的范畴。例如
void setA(String s){}
String getA(){}
当一个类中拥有这样一对方法时我们可以说这个类中拥有一个可读写的a属性(注意是小写a)。如果去掉了set的方法则是可读属性反之亦然。
其规则是去掉get或set后其剩余的字符串
如果第二个字母是小写的则把第一个字母也变成小写
getAge----age
getCPU----CPU 虽然在实际项目的开发过程中公共字段和属性在合适的条件下都可以使用但是我们应该尽可能的使用属性property而不是数据成员field
把所有的字段都设置为私有字段如果要暴露它们则把它们封装成属性这也是最佳实践推荐的方式。除了一些常量不能修改的字段可以设置为public final static类型。
3、总结
区别开属性与字段是为了更好的实现数据安全比如当我们想给一个类的属性赋值或者其他类用到了就需要将这个字段设置为public然而这样可以对字段进行任意的读写操作非常不利于数据安全。于是就加上了属性简单说属性实现了字段的封装属性有get、set 方法来控制字段该字段的属性只有set方法没有get方法就只可以对该方法进行赋值操作没有读操作反之亦然。就是对对字段的操作通过属性来控制。
可以创建属性将字段和属性封装在一起。通过属性可以像访问字段一样访问数据成员实现数据的封装避免使用非法数据赋值保证数据完整性同时类内部发生修改时避免整个程序的修改。
基于get,set方法的反射不会破坏对象数据IDE可以通过约定做些智能提示。如果你自己用反射你想做些通用处理去遍历每个字段没人跟你说哪个字段能写那个能读你没法处理嘛。
在我们项目中用到属性和字段的多半就是POJO、JavaBean、DTO、VO等等了。
标准的JavaBean
JavaBean是一种特殊的类主要用于传递数据信息这种类中的方法主要用于访问私有的字段且方法名符合某种命名规则。如果在两个模块之间传递信息可以将信息封装进JavaBean中这种对象称为“值对象”(Value Object)或“VO”有时也叫DTO数据传输对象。方法比较少。这些信息储存在类的私有变量中通过set()、get()获得。 JavaBean在Java EE开发中通常用于封装数据对于遵循以上写法的JavaBean组件其它程序可以通过反射技术实例化JavaBean对象内省机制并且通过反射那些遵循命名规范的方法从而获知JavaBean的属性进而调用其属性保存数据。