00:00
哎,那么刚才呢,我们做了一个事儿呢,就是通过反射呢来创建对应的运行时内的对象,那这个知识点的话,我们就讲完了,那这个从我们后边使用情况上来看呢,这个用的是比较多的,就是我们这里涉及到叫new inan这个方法的调用,诶这块呢,大家下来把这个呢要写一写啊,那这个讲完以后,我们再接着讲什么这个开始我们这个开始这个目录,呃,讲完这个知识点,呃讲完这个知识点了,下边呢,我们可以通过反射呢,叫获取运行时类的完整结构啊既然呢,我们这个有一个大的class的一个实例了,不妨我们这个变量名叫C1啊,就指向了这个方法区当中,我们说你这个类的实体本身啊,这个实体类当中有一些构造器,有一些方法,有一些属性,包括呢,这个类的话呢,也会有它所在的包,它所实现的接口,它的负类等等等等,甚至说呢,我们具体到一个方法当中,一个方法的话呢,方法上面可以有注解。
01:00
比如像这个overwe是吧,哎,可以有注解方法的话呢,有全限修饰符,有反回值类型,有方法名,有形态列表,有Rose的异常等等,这些的话呢,都是我们定义方法中的一些具体的一些结构了啊,那么既然你这个方法都会加载到内存当中,而且呢,我们有一个大的class的CE指向了你,言外之意,我们通过反射的方式都可以拿到咱们刚才说的这样的一些结构,那这呢,就是我们这个第五个点,需要给大家讲解的就是来获取运行室类的完整结构,包括它的副类所在的包,它的实现接口,乃至于说副类的泛型,所有的方法,所有的属性,所有的构造器。甚至呢,刚才说的属性方法构造器中呢,具体的一个权限修饰符等都可以通过反射拿到这个知识点给大家讲解一下,但是呢,不要求大家掌握啊,因为实际开发当中,咱们不会比较无聊的去获取这个类的所有结构的,是吧?啊,但是呢,我们讲解的目的呢,是让大家知道通过反射呢,我们确实可以做这样的事儿啊,让你感受到这个反射功能的一个强大啊,下边呢,我们就来做这个问题,那做这个点的话呢,我们就需要给我们这个person类呢做的丰富一些。
02:15
哎,让它那体现这个结构呢更多,哎,我就不在这个包里边去写了,我们再去新建一个包,哎,这个我们叫JAVA1啊,哎这个呢,我们就都关掉了,呃,JAVA1这里边呢,叫person也行,或者说这个嗯,不叫person也可以啊,再叫也没问题,反正是不同的包了,对吧。那就还叫person吧,这个person的话呢,我们去提供它的一些丰富的结构,比如说呢,我们先提供它的一个副类吧,这个负类的话呢,我们就叫做creature。哎,这个生物啊,这个负类的话呢,我还让这个傅类带上个泛型,哎,这样整这个负类的话呢,我也让他去实现一个接口吧,对,比如说叫sable。
03:02
嗯,在我们这个副类当中,我们声明,比如说属性,呃,这个private类型的,呃,Char类型的,比如说gender这个性别的意思,再来一个全身比较大的,嗯,Double部类型的,像体重,哎,这也算,然后private类型word来一个breath呼吸。哎,这个我们写一个叫动物,哎经叫生物哈,不能让人去进行动物了,哎,生物呼吸,哎再呢,我们写一个权限比较大的啊,Public的avoid的,哎叫做是吧。生物生物不吃东西啊,生物不是不就死了吗?是吧,哎这个哎生物啊,哎进食哎叫进食吧,哎这是吃东西吧,哎说人进食有点不好了啊哎这个生物吃东西啊,像小时候呢,以为这个那时候养鱼啊,我以为鱼呢就不吃东西呢,嗯,就是你看他这个也也不给它放东西,它像死不了啊,那自己的话呢,一天不吃感觉就快饿死了啊啊那这呢就叫哎两个方法啊,这个我们又给它提供的太丰富了,因为主体的咱们丰富的结构都在person里,这呢我们也提供了一些东西啊,看看我们这个通过person去调的时候呢,能不能拿到它的父类中的这些结构啊,也让它实现了个接口,这person这块呢,让它呢去继承于哎咱们刚才提到叫creature,哎,不妨呢,这我就刚才一个泛型呢是srina,诶可能没有特别具体的含义了啊,诶这块我们就想看一下在person这块能不能拿到负。
04:43
类的泛型啊,同时呢,我们让这个P类本身呢,去实现一些接口,比如说呢,去实现这个叫comparable接口。哎,Compare本身呢,你看还有反型啊,整一个string吧,这样,那同时呢,我们再去自定义一个接口。
05:00
嗯,自定义一个,嗯,这个class这块呢,这边有个叫interface,这就叫做my interface,行,这就这就是个接口了,这个接口里边呢,你可以写一个word,比如叫ER的方法,这是一个抽样方法,那回过来这个逗号一下叫my interface,那接着的话呢,需要去这个重启,或者要实现这个这些这个抽样方法,那有两个,两个接口里边呢,各自一个抽样方法啊OK,那这个叫iner iner呢,我们就随out一下说哎,我是一个人啊。那这个呢,Compare这个我们就就让它RETURN0吧,行,这呢是关于这两个接口中的抽样方法的一个实现,嗯,接下来我们去提供当前这个类的一些属性方法和构造器,属性这块呢,我们也让它体现不同的权限这样一个特点,比如说private,那这个string类型的name啊,还有这呃默认权限的呃,比如说这个int类型的一个age,再来一个public类型,Int型的ID。
06:04
嗯,就是体现着不同的这个权限大小,然后构造器,构造器的话呢,比如public person空参的构造器,Private person词string类型的name,哎,这个我们就this.name等于name了,哎,好久没写this点了啊,哎看看这个好久不写了,还是陌生目。诶,针类型的内in,特型的A啊,这个位置呢,我们给它整成比如说默认权限吧,啊,这里边C点内等于内,Age等于age,好,这是这个构造器那方法,方法这块呢,我们也提供的稍微丰富一点啊,比如说public word show方法,嗯,下边已经写过了啊,那这个我们整成一个private的吧,诶private show,比如说咱们上午写过这样的一个方法啊,这是一个nation,里边我们sit out一下,说我的国籍是。
07:05
哎,加上我们这个nation,同时的话呢,我想把它返回一下这个位置,我们给它整成一个string,诶,Return一下我们这个nation行,Private有,Public也有啊,其实也差不多了哈,这个在家的话呢,也行,比如说public的整一个带返回值的吧,诶,String类型的,嗯,我们可以去,呃,来一个infer you,比如叫第嗯换一个吧。嗯,返回一个什么呢?啊就叫吧先,嗯这个方法,嗯参数类型,参数类型我还不写了吧,就这样,嗯写个什么话呢,就听一下。这个我们给它啊,就不讲了,你看这里边其实,哎,这其实也也有这样的了哈,这个里边呢,这不我就传了一个值,返回了一个in特性的值,这个我再写一个就有点重复了,那你这块加一个信息吧,哎,Play,比如我们叫interest。
08:08
嗯,ET这个吧,哎,返回一下你的这个兴趣是什么啊,我们就直接把它CTRLCCTRLV一下。行,这个没写错吧。大家也都忘却了是吧,咱们有网啊,有网就有底气了,嗯,EST这样啊,多一个S啊没有S哦,Interest这这是不是又写错了,行诶啊这个这个对,In这样,Interest这样行这呢就是这个兴趣啊好把这个方法的话呢,我们就写好了,那基本上的话呢,我们这个方法这块呢,也什么都有,像有这个权限比较大的,有这个权限比较小的,有带参数的,有不带参数的啊有返回值的,没有返回值的,哎都大概什么样情况都有啊,那再加一个结构。
09:22
在加结构的话呢,我们讲前边注解的时候提过说呢,这个注解信息咱们在反射的时候呢,就给大家讲一讲,可以获取这个具体注解的信息了啊,那这块呢,我们去提供一个注解。哎,An notation,哎,不妨我就叫做my an notation啊,My a not行,那注解怎么造还记得不?忘了忘了,我们说像这种结构,你去参考一个有有的这个是吧,呃,Surprise warming,你看它打造的啊,首先呢,基本上我们都会涉及到两个典型的圆柱解,你能修饰生命结构啊,你的生命周期,这呢需要大家关注的,尤其是这个生命周期。
10:08
哎哎,加哪儿了。这是吧,尤其是这个生命周期,生命周期呢,咱们当时讲的时候提过,说要想通过反射能够获取到我们当前的注解,对当时什么。那这个时候呢,我们会加载到内存当中啊,只有在内存中的结构我们才可以通过反射获取,这呢可以修饰一些类修饰属性方法构造器啊都有,OK,那在这里边通常我们也会定义它的一个属性啊,它这是定义的是一个四锥形的数组了,那可以生明多个,咱这就整一个吧,那就是个它OK,那就写好了,那你呢,也可以在这指定一个默认值,不要default,我们这就写一个hello。啊就完事啊,咱们这儿呢,就没有具体的含义了啊,就先演示一下基本的功能,这呢这个注解写好以后,我们就可以在咱们这个person的相关结构呢去进行使用,比如说刚才提到了在这个类的声明上,我们可以加上一个这个圈叫myation,那这时候呢,MY其实它也对应着这个属性有值,这个值呢,就是咱们提到这个默认值。
11:17
啊,就是这个hello了啊,如果你要不想用这个hello,你可以回回过来,在这里边呢,重新去指定一个值,比如我想改成一个hi,诶,OK啊,那接着呢,我们把它CTRLC,它呢还可以用来修饰,比如构造器刚才也看到了可以修饰,那这个值呢,我们就是写成一个ABC啊,咱就不整这个没有啥具体含义了啊,还可以用来修饰方法就是这个方法啊,CTRLV啊这个呢,嗨。我就不写了,这样呢,就还是用咱们这个默认的这个值。啊,这个括号,然后删掉。也行是吧,啊,因为现在就用默认值了啊,这个删了也没事儿。行,那这样的话呢,我们就把这个呃,注解加到我们这个类的相关结构上了,我们通过反射的方式,其实也能拿到我们这里的注解,行CTRLS以下。
12:08
嗯,那基本上我们当前这个类的话呢,就创建成这个样子啊,那接下来我们通过反射的方式看一下,针对于person类,我们试图去获取它这里边丰富的结构啊这样的情况。那这个我们先停一下啊。
我来说两句