Java(8)--初识反射

反射:

一个应用软件,在使用时不想让外部应用改变其内部代码,并且想使用继承该软件的接口或类,这就需要使用到反射机制。

反射机制的好处:提高了程序的可扩展性。

反射:java中可以动态获取已知类中成员的机制。 可以理解为对类的解剖。
涉及到的重要对象有Class、Filed、Method、Constructor

正常获取类的内部成员的方法就是new 一个对象,获取对象成员。
反射不同,反射是将类提取成字节码文件,然后将字节码文件进行解剖,再提取对象成员。

public class reflectDemo {

    public static void main(String[] args) throws Exception {
        // TODO 自动生成的方法存根
        getClass_1();
        getClass_2();
        getClass_3();
    }
    //反射涉及到的重要对象就是Class
    //该类用于描述字节码文件。 可以将字节码文件封装成对象。
    /*
    如何获取一个字节码文件对象?
    三种方式:
        1.通过object对象中的getclass方法获取。
        2.每一个数据类型都具备一个class属性,该class属性就代表一个该数据类型的class对象。
        3.通过class对象中的forName方法获取一个指定类的字节码文件对象。
    //获取类的字节码三种方式
        *//1.
        Class clazz=Class.forName("zgq.reflect.Person");
        //2.
        Class clazz1=new Person().getClass();
        //3.
        Class clazz2=Person.class;*
    */

    //3.通过class对象中的forName方法获取一个指定类的字节码文件对象。
    public static void getClass_3() throws Exception{
        Class class1=Class.forName("bean.Student");
        System.out.println(class1);
    }

    //2.每一个数据类型都具备一个class属性,该class属性就代表一个该数据类型的class对象。
    public static void getClass_2(){
        Class stu=Student.class;
        Student stu1=new Student();
        Class class1=stu1.getClass();
        System.out.println(stu==class1);
    }

    //1.通过object对象中的getclass方法获取。
    public static void getClass_1(){
        Student stu=new Student();
        Class class1=stu.getClass();

        Student stu1=new Student();
        Class class2=stu1.getClass();

        System.out.println(class1==class2);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值