反射

反射:框架设计灵魂

框架:半成品软件。可以在框架的基础上进行软件开发,简化编码    

反射: 将类的的各个组成封装为其对象其他对象,这就是反射机制


好处:

1.可以在程序运行过程中,操作这些对象

2.可以解耦(降低程序的耦合性),提高程序的可扩展性。


获取Class对象的方式:

1.Class.forName("全类名"):将字节代码文件加载进内存,返回Class对象

*多用于配置文件,将类名定义在配置文件中。读取文件,加载类

2.类名。.class:通过类名的属性class获取

*多用于参数的传递

3.对象.getClass():getClass()方法Objiect类中的定义着

*多用于对象的获取字节码的方式


结论:

同一个字节码(*.class)在一次程序运行过程中,只会被加载一次,不会通过哪一种方式获取的Class对象都是同一个。

public class ReffectDemo01 {

public static void main(String[] args)throws ClassNotFoundException {

//1.class.forName("全类名")

        Class cls1=Class.forName("domain.Person");

//Person包加上domain包

        System.out.println(cls1);

//2.类名.class

        Class cls2= Person.class;

System.out.println(cls2);

//3.对象.getClass()

        Class cls3=Person.class;

System.out.println(cls3);

//比较三个对象

        System.out.println(cls1==cls2);//true

        System.out.println(cls1==cls3);//true

        Class c= Student.class;

System.out.println(c==cls1);

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。