java字段_java字段是什么

java字段_java字段是什么Java 中的属性和字段有什么区别 Java 中的属性 property 通常可以理解为 get 和 set 方法 而字段 field 通常叫做 类成员 或 类成员变量 有时也叫 域 理解为 数据成员 用来承载数据的 字段 field 类成员 字段 通常是在类中定义的类成员变量 例如 publicclassA privateStrin 123 我们可以说 A 类中有一个成员变

Java中的属性和字段有什么区别?

Java中的属性(property),通常可以理解为get和set方法。

而字段(field),通常叫做“类成员”,或 “类成员变量”,有时也叫“域”,理解为“数据成员”,用来承载数据的。

e3a8c170ccb27949c447f204a7cda48d.png

字段(field)

类成员(字段),通常是在类中定义的类成员变量,

例如:public class A{

private String s = “123”;

}

我们可以说A类中有一个成员变量叫做s,A类有一个字段s 。

字段一般用来承载数据,所以为了安全性,一般定义为私有的。

字段和常量描述了类的数据(域),当这些数据的某些部分不允许外界访问时,

根据 “对象封装” 的原则,应尽量避免将一个类型的字段以公有方式提供给外部。除了final修饰的常量。

一般将其设置为private类型。既然是私有,那外界怎么访问呢? 当然是通过Java的属性方法!

属性(property)

属性只局限于类中方法的声明,并不与类中其他成员相关,属于JavaBean的范畴。

例如:void setA(String s){}

String getA(){}

当一个类中拥有这样一对方法时,我们可以说,这个类中拥有一个可读写的a属性(注意是小写a)。如果去掉了set的方法,则是可读属性,反之亦然。

其规则是:去掉get或set后其剩余的字符串

总结:

区别开属性与字段是为了更好的实现数据安全,比如当我们想给一个类的属性赋值或者其他类用到了,就需要将这个字段设置为public,然而这样可以对字段进行任意的读写操作,非常不利于数据安全。于是就加上了属性,简单说属性实现了字段的封装,属性有get、set 方法来控制字段,该字段的属性只有set方法没有get方法,就只可以对该方法进行赋值操作,没有读操作,反之亦然。就是对对字段的操作通过属性来控制。

可以创建属性,将字段和属性封装在一起。通过属性可以像访问字段一样访问数据成员,实现数据的封装,避免使用非法数据赋值,保证数据完整性,同时类内部发生修改时,避免整个程序的修改。

基于get,set方法的反射不会破坏对象数据,IDE可以通过约定做些智能提示。如果你自己用反射,你想做些通用处理,去遍历每个字段,没人跟你说哪个字段能写,那个能读,你没法处理嘛。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233496.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 弹性网络回归模型_数据模型剪枝

    弹性网络回归模型_数据模型剪枝本文首发于PandaCV公众号。导语:模型剪枝算法核心在于找到“不重要”的参数并且实现裁剪。为寻找到较优的剪枝策略,我们往往需要尝试多种剪枝策略和剪枝策略性能评估。通常剪枝策略评估方法是将剪枝后的模型训练到收敛或者训练规定好数量epoch后进行性能比较。不管是人工调试剪枝策略还是自动搜索剪枝策略,都需要多次评估剪枝策略。剪枝策略的评估效率一定程度上影响了整体压缩效率。因此,本文提出了一种能够快速衡量剪枝后模型性能的方法,经实验能够对MobilenetV1减少50%的FLOPs情况下,仍能保证在Image

    2022年8月16日
    15
  • 第二范式和bcnf范式区别(bcnf范式通俗解释)

    第一范式:数据库的每一列都是不可分割的基本数据项,强调列的原子性。即列不可以再拆分。第二范式:建立在第一范式的基础上,每一个非主属性要完全函数依赖于候选键(或者说是主键,任一个候选键都可以做主键)。即非主键列完全依赖于主键,而不能是依赖于主键的一部分,必须满足两个条件:1.必须有一个主键;2.没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。第三范式(3NF)建立在第二范式的基础上,任何非主属性不依赖于其它非主属性。即每一个非主属性都不传递依赖于该范式的候选键。即非主键列只依赖于主键

    2022年4月16日
    64
  • django自定义用户认证_用户自定义的类

    django自定义用户认证_用户自定义的类前言如果我们不用使用drf那套认证规则,我们想自定义认证类,那么我们首先要知道,drf本身是如何定义认证规则的,也就是要查看它的源码是如何写的源码分析源码的入口在APIView.py文件下的di

    2022年7月30日
    6
  • visual c++ 6.0运行不了_visual c++2010无法启动程序

    visual c++ 6.0运行不了_visual c++2010无法启动程序php5.3、5.4和apache都是用vc9编译,电脑必须安装vc9运行库才能运行。php5.5、5.6是vc11编译,如用php5.5、5.6必须安装vc11运行库。php7.0、7.1是vc14编译,如用php7.0、7.1必须安装vc14运行库。php5.5以上才有64位的,其他均为32位。所以64位的系统最好把32位的运行库也安装上。如果您下载的是32位的phpStudy,需要安装32位…

    2022年8月12日
    7
  • pycharm 安装包的方法

    pycharm 安装包的方法File|Settings|Project:python_project|ProjectInterpreter

    2022年5月16日
    49
  • C++不确定行为

    C++不确定行为

    2022年1月22日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号