JVAVEE反射

目录

1.反射是什么:

2.反射的用处:

3.类类:

 4.反射实例化:

5.反射动态方法的调用:

6.反射读写属性


1.反射是什么:

反射是一种重要的技术,它允许程序在运行时动态地加载、查询和使用类、方法和属性,在运行时可以替换和调用类中的方法和属性。

2.反射的用处:

1.获取已装载类的成员变量信息;

2.获取已装载类的方法;

3.获取已装载类的构造方法信息。

3.类类:

根据Student.java获取类类的方式:

package com.xiaoxu;

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());
	}
}

 1.Class.forName()----这是通过内存地址的方式获取,应用在jdbc数据库链接中
 2.类名.class  这个用于增删改
 3.对象.getclass()  这个用于查询

案例及效果:

JVAVEE反射_第1张图片

 4.反射实例化:

 1.getConstructor   调用公共的方法

 2.getDeclaredConstructor  调用私有的方法

案列及效果:

JVAVEE反射_第2张图片

5.反射动态方法的调用:

   1.getMethod  调用公共的方法

   2.getDeclaredMethod  调用私有的方法

案列及效果:

JVAVEE反射_第3张图片

6.反射读写属性

1.getDeclaredField

2.getDeclaredFields

整体效果:

JVAVEE反射_第4张图片

 修改:

JVAVEE反射_第5张图片

 效果展示:

JVAVEE反射_第6张图片

你可能感兴趣的:(java,jvm,开发语言)