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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DirectoryExists

    DirectoryExists判断文件夹是否存在关键点GetFileAttributesTheGetFileAttributesfunctionretrievesattributesforaspecifiedfileordirec

    2022年7月2日
    22
  • linux生成md5文件_keil5如何生成bin文件

    linux生成md5文件_keil5如何生成bin文件MDK5如何生成bin文件MDK5在生成bin文件时经常会遇到找不到文件路径导致的生成失败,采用下面这条命令可以直接在.axf目录下生成对应的bin文件:再mdk的Target->User下面这条命令:fromelf.exe–bin-o“$L@L.bin”“#L”生成结果:…

    2022年10月20日
    3
  • mysql 1142错误_mysql 1067错误

    mysql 1142错误_mysql 1067错误环境:CentOS7+mysql5.7在创建视图中,出现了1142报错信息,如下:报错原因:使用的mysql用户没有创建视图的权限解决:赋予该用户权限,我这里使用的用户名是admin,1、通过root进入mysql执行一下语句mysql>grantallprivilegesonshop.*toadmin;QueryOK,0rowsaffected(0.00sec)mysql>flushprivileges;QueryOK,0rowsaf

    2022年10月1日
    2
  • 什么是Unicode字符_Unicode格式字符是什么

    什么是Unicode字符_Unicode格式字符是什么写这篇博客的原因,从做软件开始,什么ASCII码,Unicode,UTF-8,UTF-16,UTF-32……这些鬼东西总是经常碰到,只知道这些鬼是编码格式,其他的就啥都不清楚了,既然总是遇

    2022年8月1日
    7
  • 管理sql server表数据_sql server如何使用

    管理sql server表数据_sql server如何使用表是SQL Server中最基本的数据库对象,用于存储数据的一种逻辑结构,由行和列组成, 它又称为二维表。例如,在学生成绩管理系统中,表1–是一个学生表(student)。(1)表表是数据库中存储数据的数据库对象,每个数据库包含了若干个表,表由行和列组成。例如,表1–由6行6列组成。(2)表结构每个表具有一定的结构,表结构包含一组固定的列,由数据类型、长度、允许Null值等组成…

    2022年8月18日
    14
  • 【随机过程】马氏链的理论与仿真

    【随机过程】马氏链的理论与仿真

    2021年9月3日
    70

发表回复

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

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