JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射

本文深入探讨JAVA反射机制,介绍Class类、反射的概念、Constructor、Field、Method的使用,以及如何通过反射调用Main方法和操作数组。通过实例代码展示了反射在获取构造器、成员变量和方法上的应用,适合JAVA初学者和进阶者学习。
摘要由CSDN通过智能技术生成

JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践


我们继续聊JAVA,这次比较有意思,那就是反射了

一.认识Class类

想要反射,你就必须要了解一个类——Class,我们知道,java程序中的各个java类都属于同一事物,我们通常用Classliability描述对吧,反射这个概念从JDK1.2就出来了,历史算是比较悠久了,这个Class可不是关键字哦,这个是一个类,他代表的是一类事物;

  • 我们归根结底就是拿到字节码对象

这里我们有三种方式是可以得到对应的实例对象(Class类型)

  • 1.类名.class
  • 2.对象.getClass
  • 3.Class.forName(“类名”);—常用

我们写一个小程序来过一遍

public class CalssTest {

    public static void main(String[] args) throws ClassNotFoundException {
        String str1 = "liu";
        Class class1 = str1.getClass();
        Class class2 = String.class;
        Class class3 = Class.forName("java.lang.String");

        System.out.println(class1 == class2);
        System.out.println(class1 == class3);
        System.out.println(class2 == class3);

    }
}

通过打印的结果我们可以知道我们都是输出同一份字节码,所以结果都是true,我们再来看,我们的Class其实还有一个方法

System.out.println(class1.isPrimitive());
System.out.println(Integer.class == int.class);
System.out.println(int.class == Integer.TYPE);

打印的结果是true,false,true,那这三又是什么意思呢?这个就留给大家猜想一下,应该很容易就知道了的

  • isPrimitive是否是基础类型或者原始类型

那我们的数组是什么类型呢?

宗旨,只要是在源程序中出现的类型,都有各自的Class类型,列入int[],Void等

二.反射的概念

好的。了解了Class类的神奇,我们就可以来看看反射的机制了

反射的概念:反射就是把JAVA类中的各种成分映射成相应的JAVA类,例如,一个java类中用一个Class类的对象来表示,一个类中的组成部分,成员变量,方法,构造方法,包等信息,也用一个个的JAVA类来表示,就像汽车是一个类,汽车中的发动机,变速箱也是一个类,表示JAVA的Class类要提供一系列的方法,来获取其中的变量,方法,构造方法,修饰符,包等信息,这些信息是用来相应类的实例对象表示,衙门是Field,Method,Contructor,Package等

一个类中的每一个成员都可以用相应的反射API类的一个实例对象来表示,通过调用Class来调用各种方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值