文章目录
1.Class类实例是什么?2.获取Class类实例的三种方式
1.Class类实例是什么?
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191012111226234.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzY0NDY4,size_16,color_FFFFFF,t_70)
2.获取Class类实例的三种方式
1.Class类中的静态方法: 2.Object类中的getClass()方法: 3.每个类的.class属性 下面通过实例来看如何获取Class类对象: 先写一个Person类:这个类中有成员变量,成员方法,构造方法,并且修饰符和参数不同 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191012115119755.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzY0NDY4,size_16,color_FFFFFF,t_70)
package 获取Class文件对象的三种方式;
public class Person {
private String name;
int age;
public String address;
public Person(){}
Person(String name,int age){
this.name=name;
this.age=age;
}
public Person(String name,int age,String address){
this.name=name;
this.age=age;
this.address=address;
}
public void show(){
System.out.println("show");
}
public void meethod(String s){
System.out.println("method"+s);
}
public String getString(String s,int i){
return s+"------"+i;
}
private void function(){
System.out.println("function......");
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
'}';
}
}
获取Class类对象的三种方式: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191012125057126.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNzY0NDY4,size_16,color_FFFFFF,t_70)
package 获取Class文件对象的三种方式;
public class ReflectDemo1 {
public static void main(String[] args) throws ClassNotFoundException {
//方式1:通过Object的getClass()方法
//返回此Object的运行时类,这个运行时类就是Person类
//Class类实例c1代表正在运行的java应用程序中的Person类
Person p1 = new Person();
Class c1 = p1.getClass();
Person p2 = new Person();
Class c2 = p2.getClass();
System.out.println(p1==p2);//false
System.out.println(c1==c2);//true
//方式2:
Class c3 = Person.class;
System.out.println(c1==c3);//true
//方式3:Class类中的静态方法,Class类实例c4就代表Person类
Class c4 = Class.forName("获取Class文件对象的三种方式.Person");
System.out.println(c1==c4);//true
}
}
|