Java中成员变量和属性之间的关系

有人可能遇到这样的错误,明明在类中定义了某个成员变量,但是系统在运行的时候提示错误:属性XX没有定义。这是什么原因呢?

大家知道成员变量有多种访问控制符,通常都应该把成员变量定义成私有的,然后为该成员变量提供set方法和get方法,外界通过set方法和get方法对成员变量进行操作。这样对外界来说,只有能够访问到的成员变量才算是属性,例如下面的代码:

private String userName;

public void setUserName(String userName){

this.userName = userName;

}

public String getUserName(){

return userName;

}

这时候我们说当前类有userName属性,注意要区分大小写。

另外还有一点非常重要,属性的名字不是由成员变量决定的。通常set方法和get方法的名字是set或者get加上成员变量的名字,成员变量的首字母要变成大写。而属性的名字是什么了,其实属性的名字就是去掉set或者get,然后把首字母变成小写。从这两个命名规则可以看出,通常属性名与成员变量的名字是一致的。但是,如果在写set方法和get方法的时候,没有按照默认的规则写,则属性名字和成员变量名字就一样了。看下面的例子:

private String userName;

public void setUsername(String userName){

this.userName = userName;

}

public String getUsername(){

return userName;

}

在上面的代码中,只修改了方法的名字(大写的N变成小写的n),这时候属性的名字已经由userName变成username了。如果要按照属性名字访问而不是直接访问get方法(例如,表达式语言),或者由框架自动完成属性的赋值(例如,对于WebWork,需要在Action中需要定义与表单元素相同名字的属性,对于Struts1,需要在ActionForm中定义与表单元素相同名字的属性),这时候就必须写username而不是userName,否则就抱错,就是本文开头所说的错误。

如果出现这样的错误,首先查看有没有定义set方法或者get方法,然后看看方法名字是否写的正确。

(十一)随机性与独立性回顾 随机性与独立性回顾 阅读详情

相关推荐

win2012 r2 + IIS8.5 伪静态设置脚本映射

win2012 r2 + IIS8.5 伪静态设置脚本映射,网站用的.net fromwork 2.0 ,应用程序池设置了32位支持

xueking87的专栏 3241

属性 与成员变量的 区别与联系 及属性修饰词理解

成员变量和属性的区别与联系在于: 成员变量是一个“内”概念,反映的是类的结构构成。属性是一个“外”概念,反映的是类的逻辑意义。 成员变量没有读写权限控制,而属性可以指定为只读或只写,或可读可写。 成员变量不对读出作任何后处理,不对写入作任何预处理,而属性则可以。 public成员变量可以视为一个可读可写、没有任何预处理或后处理的属性。 而private成员变量由于外部不可见,与属性“外...

weixin_30394669的博客 384

NHANES数据库实战:数据合并与加权分析技巧

本文详细解析了NHANES数据库实战中的核心技巧,重点阐述了数据合并与加权分析的正确方法。通过两个具体案例,手把手指导如何从数据下载、合并、权重计算到使用R语言survey包进行加权统计分析,避免因忽略复杂抽样设计而导致的研究偏倚,确保分析结果的准确性与可发表性。

weixin_29057065的博客 585

属性和成员变量

属性和成员变量成员变量在接口interface里面的统称为成员变量成员变量必须包含在大括号中注意在ObjC中不管是自定义的类还是系统类对象都必须是一个指针属性编译器自动将变量set和get方法的合成,可用点语法读取,可作为变量使用可以使用关键字 @synthesize 来对属性进行绑定。@synthesize 关键字后面紧跟着的是属性名字,等号后面即为该属性所绑定的成员变量。关键字 @synthe...

twier_的博客 1510

创建动态代理对象bean,并动态注入到spring容器中

使用过Mybatis的同学,应该都知道,我们只需要编写mybatis对应的接口和mapper XML文件即可,并不需要手动编写mapper接口的实现。这里mybatis就用到了JDK动态代理,并且将生成的接口代理对象动态注入到Spring容器中。 这里涉及到几个问题。也许有同学会有疑问,我们直接编写好类,加入@Component等注解不是可以注入了吗?或者在配置类(@Configuration)...

lichuangcsdn的博客 3万+

在没有信用卡的情况下怎么申请谷歌云(Google Cloud)?

这笔额度足够用来跑一台云服务器、部署小型网站,甚至可以尝试 AI、机器学习等项目。但问题来了——想要拿到这 300 美元,你必须先通过支付方式验证。默认选项就是绑定一张国际信用卡(Visa、MasterCard 之类),然而不少人没有信用卡,或者信用卡无法支持国际支付,结果就卡在注册第一步。很多人会疑惑:既然是送额度,为什么还要绑卡?原因其实很简单:谷歌需要确认你是真实用户,而不是批量注册薅羊毛;通过支付验证,后续如果你用完 300 美元额度,可以直接进行付费使用;

m0_74824483的博客 5659

成员变量和属性

成员变量和属性的区别 成员变量: 类中初始化定义的变量称为成员变量 属性: 类中set/get方法中set/get后面紧跟着的名字称为属性 距离 现有如下Person类 成员变量有 name,age,且分别设有set/get方法 public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name

m0_55946655的博客 758

反序列化漏洞详解

目录 一、什么是序列化和反序列化 二、什么是反序列化漏洞 三、序列化函数(serialize) 四、反序列化(unserialize) ​五、什么是PHP魔术方法 六、一些常见的魔术方法 七、魔术方法的利用 八、反序列化漏洞的利用 1.__destruct()函数 2.__wakeup() 3.toString() ​九、反序列化漏洞的防御 一、什么是序列化和反序列化 序列化是将对象转换为字符串以便存储传输的一种方式。而反序列化恰好就是序列化的逆过程,反序列化会将字符串.

LJH1999ZN的博客 3万+

属性和成员变量有什么区别

访问级别:属性可以设置不同的访问修饰符,例如 public、private、protected 或 internal,从而控制对数据的可见性。总的来说,属性提供了更好的封装性和控制性,可以在保护数据的同时提供更高层次的抽象接口。成员变量直接暴露数据,用于存储和访问类的实际数据。在实际开发中,根据需要和设计原则,可以选择使用属性或成员变量来实现类的数据访问。它们可以通过类的实例访问,通常具有 private、protected、public 或 internal 访问修饰符,决定了它们的可见性和访问级别。

波波诸葛伟 1486

基于Matlab生成并可视化多架飞机轨迹仿真(附源码)

这使我们可以轻松地对直线和恒定转弯进行建模,并具有额外的自由度,可以在直线段和曲线段之间平滑过渡。同样,空气中的物体会经历重力的影响,遵循抛物线(二次)路径。需要更多的航点来适应这些变化,但是轨迹的其余部分需要更少的点。第三个轨迹,如下所示,代表了一架速度更高的飞机。它由两个恒定的转弯组成,飞机在第二个转弯的中间减速。一旦知道(并设置了)物体穿过空间的物理路径,物体的速度作为行进距离的函数就通过三次埃尔米特插值来确定。在此示例中,学习了内部使用的插值符背后的概念,并展示了如何使用少量航点重现场景。

珞瑜的博客 5465

Juniper SRX PPPoE配置

set interfaces pp0 unit 1 ppp-options chap default-chap-secret 拨号用户名密码。set interfaces pp0 unit 0 ppp-options chap default-chap-secret 拨号密码。set interfaces pp0 unit 0 ppp-options chap local-name 拨号用户名。6号口接运营商进行拨号。

Jian Sun_的博客 751

java中属性之间的关系_Java中成员变量和属性之间的关系

有人可能遇到这样的错误,明明在类中定义了某个成员变量,但是系统在运行的时候提示错误:属性XX没有定义。这是什么原因呢?大家知道成员变量有多种访问控制符,通常都应该把成员变量定义成私有的,然后为该成员变量提供set方法和get方法,外界通过set方法和get方法对成员变量进行操作。这样对外界来说,只有能够访问到的成员变量才算是属性,例如下面的代码:private String userName;pu...

weixin_36274355的博客 403

Oracle EBS GL日记账批“选定以过账”状态数据修复

日记账来源:应收账款。用户操作过账以后,自动提交请求“过账:单一分类账”一直运行中,该请求执行5,6个小时甚至10多个小时无法完成,导致“标准管理器”阻塞大量请求待定,“冲突解决管理器”的待定数量不断增加。系统管理员不得不把该请求强制取消,此时,日记账批的状态处于“选定以过账”(GL_JE_BATCHES.STATUS为S),如下图 检查此日记账批有3千多条日记账题头,由于日记账比较多,日记账的科目余额计算需要大量服务器资源和执行时间比较长。

陈显平的专栏-Oracle EBS 3246

E-R图与java笔记

E-R图 ER图 ** 也称 实体-联系图 ***(Entity Relationship Diagram)*,用来描述身边实体联系关系和实体属性的图像模型。也是用来描述世界的概念模型。 E-R图的组成 实体:一般用矩形框表示。在中间存放实体的名称。 属性:一般用椭圆形表示实体的属性,中间存放实体的名称。 实体与实体的联系:用棱形表示是,中间存放实体的关系名称。 实体与实体的关系:其关系有1:1 ,1:n 和 M:N。 //例子: //1 : 1 的关系:人和身份证,一个人只能有一张身份证,每张身份证

qq_42284614的博客 852

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

小白学Java核心知识点(面向对象)一:关于类和对象的关系

一、关于类和对象的关系 ```java //面向对象:三个特征:封装,继承,多态。 //以后开发:其实就是找对象使用。没有对象,就创建一个对象。 //找对象,建立对象,使用对象。维护对象的关系。 /* 类和对象的关系。 现实生活中的对象:张三 李四。 想要描述:提取对象中共性内容。对具体的抽象。 描述时:这些对象的共性有:姓名,年龄,性别,学习java功能。 映射到java中,描述就是class定义的类。 具体对象就是对应java在堆内存中用new建立实体。 类就是:对现实生活中事物

weixin_45246666的博客 142

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

类与对象的关系和使用

一、类和对象 类是对象的数据类型,由属性和行为构成,对象则是一个客观存在的实体。为了更好地描述类和对象之间的关系,我们举例来说明,买车时,我们想要了解到关于车的信息,此时,车就作为对象,属性则为车子的品牌,价位,行为就是上路奔跑。类是对于属性和行为的抽象,对象是真是存在的实体。 二、类的定义 类是对现实生活中一类具有共同属性和行为的事物的抽象 类是java程序的基本组成单位 ,由此可以见得,类在我们编写程序时的重要性 定义步骤:定义类,编写成员变量,编写成员方法 三、对象的使用...

m0_63055441的博客 3156

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java--6

目录1.类与对象(1)对象(2)面向对象(3)类(4)对象的属性(5)对象的行为(6)类和对象的关系(7)类的定义(8)类的使用2.对象内存图3.课堂实例 1.类与对象 (1)对象 客观存在的事物都是对象 (2)面向对象 了解对象的详细信息,并关注它,这个过程就叫面向对象 (3)类 类是对现实生活中类具有共同属性和行为的事物的抽象 类的特点: 类是对象的数据类型 类是具有相同属性和行为的一组对象的集合 (4)对象的属性 (5)对象的行为 对象能够执行的操作叫做对象的行为 比如:手机打电话,发短信 (6)类

qq_55689272的博客 109

Java 成员变量和属性的区别

Java 成员变量和属性的区别 JavaBean - 类必须被public修饰 - 必须提供空参的构造器 - 成员变量必须使用private修饰 - 提供公共setter和getter方法 package domin; import java.io.Serializable; public class User implements Serializable { privat...

DeeJinG的博客 2791

java属性和成员变量的区别

很多人都认为java中属性就是成员变量,其实不然;那他们有什么区别呢?让我们通过以下代码来理解: public class Person { private String name; private int age; private String gender; public String getName() { return name; } public void setNa...

冬冬466的博客 1万+

Java中的类、对象、属性和方法之间的关系

基本属性 首先我们需要了解JAVA面向对象中有几点需要注意的: 类 Class 对象 Object 方法 Method 属性 Field Class 类 类是什么?可以把类理解为一个系。如动物、植物、建筑等。这个概念是抽象的,是没有实体的。 但一个系下又是拥有具体的一个事物。如: 也就是说类是用于被实例化的。 ...

qq_24693613的博客 3913

Java类的属性:成员变量的定义和声明

在 Java 中类的成员变量定义了类的属性。例如,一个学生类中一般需要有姓名、性别和年龄等属性,这时就需要定义姓名、性别和年龄 3 个属性。声明成员变量的语法如下: [public|protected|private][static][final]<type><variable_name> 各参数的含义如下。 public、protected、private:用于...

jijiangpeng的博客 5866

java中 成员变量和属性的区别

Java 成员变量和属性的区别 javaBean - 类必须被public修饰 - 必须提供空参的构造器 - 成员变量必须使用private修饰 - 提供公共setter和getter方法 package domin; import java.io.Serializable; public class User implements Serializable { private int id; private String username; private String password;

Ven%的博客 2759

JAVA中类与类之间的关系

JAVA中类与类之间的关系

qq_48953464的博客 3028
上一篇: java.lang.ClassCastException
下一篇: java.lang.ArrayIndexOutOfBoundsException异常分析及解决
Java_Web_Book
博客等级 码龄18年 8粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值