前言
个人学习笔记,欢迎指出任何错误,留言。
随着个人学习的深入,我的文章将定期更新。
以最简洁的风格记录概念和方法
目录
反射的概述
获取Class对象的三种方式
示例代码
反射的概述- 反射机制是在运行状态下,对于任何一类,都能知道这一类的所有属性和方法; 对于任何对象,都可以调用其任意属性和方法; 这种动态获取信息和动态调用对象方法的功能称为Java语言的反射机制。
- 三种分类方式
- 类名.class属性
- 对象名.getClass()方法
- Class.forName(全类名)方法
public class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void study(){ System.out.println(“学生在学习”); } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; }}public class Reflectdemo { public static void main(String[] args) throws ClassNotFoundException { //1.forname(“全类名”)Class类中的静态方法 //全类名:包名 + 类名 Class clazz = Class.forName("com.itheima.myreflect2.Student"); System.out.println(clazz); //2.通过class属性获取 Class clazz2 = Student.class; System.out.println(claz2); //3.使用对象的getclass方法获取class对象 ///getclass方法定义为Object类. Student s = new Student(); Class clazz3 = s.getClass(); System.out.println(claz3); System.out.println(clazz == claz2); System.out.println(claz2 == claz3); }}