java類反射獲取類對象的三種方法


//獲取class對象的三種方法
public class ReflectDemo1 {
    public static void main(String[] args) throws ClassNotFoundException {
        //1.通過class屬性獲取
        Class<Student> studentClass1 = Student.class;
        System.out.println(studentClass1);

        //2.通過對象的getClass方法獲取
        Student student = new Student();
        Class<? extends Student> studentClass2 = student.getClass();
        //因為class對象為同一個所以可以通過==判斷對象是否為同一個
        System.out.println(studentClass1 == studentClass2);

        //3.通過Class類的靜態方法forName獲取class對象
        Class<?> aClass = Class.forName("mystring.demo4.Student");
        System.out.println(aClass == studentClass1);
    }
}

Student類后續都要用到,反射的模板

package mystring.demo4;

public class Student {
    //成員變量:一個私有,一個默認,一個公共
    private String name;
    int age;
    public String address;

    //構造方法:一個私有,一個默認,兩個公共
    public Student() {
    }

    private Student(String name) {
        this.name = name;
    }

    Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Student(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }

    //成員方法:一個私有,四個公共
    private void function() {
        System.out.println("function");
    }

    public void method1() {
        System.out.println("method");
    }

    public void method2(String s) {
        System.out.println("method:" + s);
    }

    public String method3(String s, int i) {
        return s + "," + i;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                '}';
    }

    void say(){
        System.out.println("I love code");
    }
}



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM