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

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

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


  
  
  1. private String name;
  2. private int age;
  3. 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、获取某个类的成员变量,不包括父类的字段


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

2、获取某个类的属性


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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值