绿色模板网站,手机上的网站是怎么做的吗,江苏手机响应式网站建设,文交所网站建设方案目录
一.什么是反射 用实体类Student做示范
三.反射实例化
四.反射动态方法调用
五.反射读写属性 一.什么是反射
反射java语言中的一种机制#xff0c;通过这种机制可以动态的实例化对象#xff0c;读写属性#xff0c;调用方法
二.类类
Class.forName(完整类名)类名…目录
一.什么是反射 用实体类Student做示范
三.反射实例化
四.反射动态方法调用
五.反射读写属性 一.什么是反射
反射java语言中的一种机制通过这种机制可以动态的实例化对象读写属性调用方法
二.类类
Class.forName(完整类名)类名 .class对象 .getClass 用实体类Student做示范
package com.zking.fanshe;public class Student {private String sid;private String sname;public Integer age;static{System.out.println(加载进jvm中);}public Student() {super();System.out.println(调用无参构造方法创建了一个学生对象);}public Student(String sid) {super();this.sid sid;System.out.println(调用带一个参数的构造方法创建了一个学生对象);}public Student(String sid, String sname) {super();this.sid sid;this.sname sname;System.out.println(调用带二个参数的构造方法创建了一个学生对象);}SuppressWarnings(unused)private Student(Integer age) {System.out.println(调用Student类私有的构造方法创建一个学生对象);this.age age;}public String getSid() {return sid;}public void setSid(String sid) {this.sid sid;}public String getSname() {return sname;}public void setSname(String sname) {this.sname sname;}public void hello() {System.out.println(你好我是 this.sname);}public void hello(String name) {System.out.println(name 你好我是 this.sname);}SuppressWarnings(unused)private Integer add(Integer a, Integer b) {return new Integer(a.intValue() b.intValue());}Overridepublic String toString() {return Student [sid sid , sname sname , age age ];}}//1.Class.forname()Class stuClass Class.forName(com.zking.fanshe.Student);//2.类Class Class Student.class;//3.对象 .getClassStudent student new Student();Class class2 student.getClass();System.out.println(stuClass);System.out.println(class2);System.out.println(Class);
三.反射实例化
getConstructorgetDeclaredConstructornewInstance //实例化对象Constructor con stuClass.getConstructor();Student stu (Student) con.newInstance();stu.setSid(001);stu.setSname(宝宝);System.out.println(stu);//有参 参数构造Constructor con1 stuClass.getConstructor(String.class,String.class);Student stu02 (Student) con1.newInstance(004,瑶宝);System.out.println(stu02);//私有方法①ConstructorStudent con3 stuClass.getDeclaredConstructor(Integer.class);con3.setAccessible(true);Student stu04 con3.newInstance(18);System.out.println(stu04);
四.反射动态方法调用
getMethodgetDeclaredMethod //无参的公共方法Method method stuClass.getMethod(hello);method.invoke(stu);//有参的公共方法Method method2 stuClass.getMethod(hello, String.class);method2.invoke(stu, 辉辉);//②Method method3 stuClass.getDeclaredMethod(add, Integer.class,Integer.class);method3.setAccessible(true);int n (Integer) method3.invoke(stu, 1,2);System.out.println(n);
五.反射读写属性
getFieldgetDeclaredField //公有反射属性Field field stuClass.getField(age);field.set(stu, 98);System.out.println(stu);//私有反射属性Field sname stuClass.getDeclaredField(sname);sname.setAccessible(true);sname.set(stu, 小红花);System.out.println(stu);