A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2018-4-26 14:32 编辑

java基础进阶

Class:类,类的字节码对象.
反射机制的概述:
反射前提:Reflect
​        先获取一个类的字节码对象,通过对象可以通过调用方法获取类的构造方法和成员方法和属性..
反射:
​        运行时,可以获取任意类的所有方法和属性.
​        通过对象调用所有的方法和属性.
获取字节码对象方式:
​        1.        通过Object的getClass()方法获取,必须有类的对象/
​                Student s=new Student();
​                Class clazz=s.getClass().        
​        2.        类名+Class
​                Class clazz=Student.Class.
​        3.        Class clazz=Class.forName("com.itheima_01.Student").字符串
​                两个对象作比较,比的是地址值,class.包名+类名;
反射操作构造方法,成员方法,成员属性:
​        构造方法:没有返回值,直接用类名调用.作用:初始化成员变量,创建对象
​        构造方法参数列表填写参数的字节码对象:                public Student(String s,int a){},==(String.class, int a.class);
  • 通过构造方法获取对象,有参构造通过getConstructors()创建对象

    • 无参构造通过Object obj=clazz.newInstance();创建对象
      获取构造方法:        getConstructors(),Constructor是一个类,描述构造方法的类
                  //获取所有的Public修饰的构造方法

                  getConstructors(),字节码对象clazz调用,返回值是:Constructor数组

                  //获取无参构造

                  getConstructor(可变参数Class),


​        创建对象:                newInstance(可变参数跟随Constructor的参数)
​                                        Object obj=c.newInstance().
​                                        构造方法参数要和创建对象参数保持一致.有参数就是有参构造
JavaBean的概述和BeanUtils的使用:
JavaBean:就是一个标准类,用于封装对象.
​                类使用公共进行修饰
​                提供私有修饰的成员变量,提高安全性
​                为成员变量提供公共的访问方式,getter和setter
​                提供公共无参构造
​                实现序列化接口
自定义BeanUtils工具类:
首先私有空参构造
Apache commons提供的一个组件,主要功能是weile简化JavaBean的封装数据的操作
导入jar包,学习了三种方法.三种方法:                都是通过反射实现
​                1.setProperty(p,"变量名","赋值")给JavaBean对象的成员变量进行赋值
​                2.getProperty(p,"变量名","赋值")
​                3.populate(),把Map中的键值对关系赋值给类的对象
注意:set,get方法底层是通过getter和setter方法操作成员变量

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马