• 廖雪峰Java2面向对象编程-6Java核心类-4JavaBean


    1.JavaBean定义

    符合以下命名规范的class被成为JavaBean

    • private 类型的field
    • 针对这个field的get和set方法
    public class Person {
        private String name;
        private int age;
        private boolean child;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public void setAge(int age) {
            this.age = age;
        }
        //isChild方法没有Child字段,而是根据age,实时返回
        public boolean isChild() {
            return age < 6;
        }
    }
    
    注意: * 对于boolean方法,get方法是is * 属性只需要定义getter/setter方法,不一定需要相应的字段

    2.JavaBean属性

    通常把一组对应的getter和setter称为属性property

    • name属性:
      * 对应读方法getName()
      * 对应写方法setName()
    • 对于只有getter的属性成为只读属性,例如age
    • 对于只有setter的属性成为只写属性,例如isChild

    3.JavaBean的作用:

    方便IED工具读写属性
    传递数据
    枚举属性

    public class Main {
        public static void main(String[] args) throws Exception{
            BeanInfo bi = Introspector.getBeanInfo(Person.class);
            for(PropertyDescriptor pd:bi.getPropertyDescriptors()){
                printPropertyDescriptor(pd);
            }
        }
        static void printPropertyDescriptor(PropertyDescriptor pd){
            String name = pd.getName();
            Class<?> clazz = pd.getPropertyType();
            if (clazz == null || name.equals("class")){
                return;
            }
            Method read = pd.getReadMethod();
            Method write = pd.getWriteMethod();
            System.out.println("===== PropertyDescriptor=====");
            System.out.println("Name: "+ name);
            System.out.println("Type: " + clazz.getName());
            System.out.println("Read method: " + (read == null ? "null":read.getName()));
            System.out.println("Write menthod: " + (write == null ? "null":write.getName()));
        }
    }
    

    4.总结:

    • JavaBean是一种符合命名规范的class
    • JavaBean通过getter/setter来定义属性
    • 属性是一种通用的叫法,并非Java语法规定
    • 可以利用IDE快速生成getter/setter
    • 使用Introspector.getBeanIfo()获取属性列表
  • 相关阅读:
    NFS部署
    centos6 编译安装 mysql5.6----------centos7编译安装MySQL5.7
    db2部署
    FTP服务部署
    ssh 免交互式登陆
    dockerfile
    docker 入门
    求助 webBrowser 的兼容性问题 有偿的 500红包
    EF 请求数据是缓存 求大神解释
    跪求 EF缓存问题 也不知道是不是缓存 问题
  • 原文地址:https://www.cnblogs.com/csj2018/p/10295094.html
Copyright © 2020-2023  润新知