JAVA 类中的成员变量Fields和属性Properties区别

本文详细介绍了Java中成员变量Fields和属性Properties的区别。成员变量是类的字段,没有get/set方法,而属性通常指带有getter/setter的方法。通过`getDeclaredFields()`可以获取类的成员变量,使用`BeanUtils.getPropertyDescriptors()`则能获取类的属性。了解这些概念对于Java编程至关重要。
摘要由CSDN通过智能技术生成

一、类的成员变量Fields和属性Properties 
Java学习中一直以为成员变量与属性是一样的,但后面使用IDEA等工具时发现有区别,下面创建一个类Person区分一下:

在这里插入图片描述
 
1. 成员变量Fields:
就是定义的字段name、age、gender(没有get/set)

private String name;
private int age;
private String gender;

2. 属性Properties:常见properties应该是在xxx.properties作为配置文件,属性Properties是有get/set的,或者说是成员变量的getter/setter,用来设置/获取这个类的属性。

属性properties的官方定义:属性是指get或者set方法名,去掉get或者set后,把剩余的部分首字母改为小写后,即为这个类的属性。

上图中没有height成员变量,但getHeight()是一个getter,因此getHeight()也是属性。

参考文章:

https://blog.csdn.net/peng19870724/article/details/105551255

https://blog.csdn.net/sinat_34137390/article/details/82149259

https://blog.csdn.net/DeeJinG/article/details/105999214

https://blog.csdn.net/JavaEETeacher/article/details/4311673

二、由于成员变量和属性的不同,那么我们应该如何获取类的成员变量和属性?

1、获取某个类的成员变量,不包括父类的字段

Field[] fields = User.class.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
    System.out.println(fields[i].getName());
}

2、获取某个类的属性

PropertyDescriptor[] propertyDescriptors = BeanUtils.getPropertyDescriptors(User.class);
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
    System.out.println(propertyDescriptor.getName());
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值