一、反射的概述
1.反射的介绍:
Java的反射机制是在运行的状态中,对于任意的一个类,能够知道这个类的所有属性和方法;对于任意一个对象,能够调用它的任意一个属性和方法,这种动态获取的信息以及动态调用对象的方法的功能成为java语言的反射机制
一句话,反射技术可以对类进行解剖。
2. 反射中涉及的概念:
Java中的.class文件是java的可运行文件,叫字节码文件,java的.class文件也有共性,可以单独抽取出来,用“类”来描述。这个“类”就是Class(注意这是类的名字)。
要想获取一个类的内容,必须先要获取这个类所在的字节码文件对象,该对象是Class类型
字节码文件对象的作用:New一个Person对象,首先加载Person.class文件进内存,进内存时就被封装成了对象
二、字节码文件对象的获取
例:Person类
public class Person {
//字段或私有成员变量
private String name;
private int age;
//构造方法
public Person(){
System.out.println("Person 构造方法运行");
}
//重载的方法
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
//输出方法
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
//静态方法
public static void show(){
System.out.println("show静态方法执行");
}
//带参数的方法
public String eate(String a,int b){
String res = a + b;
System.out.println("function param:"+ a + "." + b);
return res;
}
//私有方法
private void joke(){
System.out.println("joke私有方法执行");
}
//普通方法
public void run(){
System.out.println("run普通方法执行");
}
}