欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

获取Class类实例的三种方式

程序员文章站 2022-05-07 21:45:09
...

1.Class类实例是什么?

获取Class类实例的三种方式
获取Class类实例的三种方式

2.获取Class类实例的三种方式

获取Class类实例的三种方式
1.Class类中的静态方法:
获取Class类实例的三种方式
2.Object类中的getClass()方法:
获取Class类实例的三种方式
3.每个类的.class属性
获取Class类实例的三种方式
下面通过实例来看如何获取Class类对象:
先写一个Person类:这个类中有成员变量,成员方法,构造方法,并且修饰符和参数不同
获取Class类实例的三种方式

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类对象的三种方式:
获取Class类实例的三种方式

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
    }
}