00:00
行,那刚才呢,咱们就举了一个反射的例子啊,通过这个例子呢,大家来体会一下反射到底能干什么,哎,毕竟呢,我们说这个反射内容相对来讲难一点啊,其实这个难的话呢,主要是大家难理解,像刚才我们提到这个所谓的叫动态性啊,大家呢,可能体会起来还是有一些难度,那下边呢,我们还是通过一些代码啊,让大家呢去这个感受这个反射到底能干什么啊这样一个事情,那咱们就一点点内容呢来展开去说啊,首先呢,我们根据刚才讲的这样的一个例子,哎,大家呢,看一下啊,我把这个光标放在这个class,这class这以后你会发现呢,我们下边呢,诶,凡是用到class地方呢,都这个加成一个这个蓝色的一个背景了啊,你会发现呢,我们要想做这样的几几个事儿哈。你会发现每一个是不是都有这个class,哎,那严而一点点就是我们这个class啊,那也就是说呢,我们这个class是在我们反射当中必须要用的,也可以把它看成是一个反射的源头,哎,为什么叫源头,你看我们想做的这个事儿上来呢,就先在是通过class去操作,通过它去操作,通过它去操作,通过它去操作,这个也是啊没了啊,就是上来呢,就得先在拿着这个class的对象做一些操作,接下来的话呢,我们才能够啊使用反射里边这个相关的功能去做一些事情,所以我们习惯上呢,把这个大的class称作呢叫反射的源头。
01:17
啊,那么关于这个大的class,那我们就得讲一讲它到底呢,怎么去理解它啊,我们在后边呢,写这样的一个描述啊,哎这呢就是关于哎,关于这个Java点浪包下定义了一个叫做大了class这样的一个类,它的一个理解啊哎这呢也是咱们的一个重点,虽然说这个理解是因为呢,这里边没有代码啊,这个需要呢,大家呢去清楚这个类它到底是什么意思啊,那首先呢,我们说一下这个类的一个加载过程啊,这个呢,在咱们第一天讲Java语言的时候呢,其实就提到过这个事情,就是我们呢,呃,Java程序编写完以后,诶,我们需要经过两个过程,第一个过程呢,叫Java c.exe。
02:04
对叫编译过程,那编译过程以后我们呢,会生成相应的叫自解码文件,对点class这个自解码文件啊,这个我们就把这个过程来描述一下啊,那么这个类。啊,或者要这个程序啊,在经过啊叫Java c.exe这个命令以后。哎,这个命令呢,我们称它叫编译的一个命令啊,经过这个命令以后呢,我们说会生成啊一个或多个字解码文件,那这个自解码文件呢,咱们都知道了,是点class结尾的,那这呢叫做自解码文件啊,这个自解码文件呢,我们也提道了,是不是每一个Java类就是我们编写我们写的这个程序啊,每个Java类呢,是不是就对应了一个自建码文件啊,哎,这个都清楚,会生成一个或多个自建码文件,哎,然后接着我们使用啊,使用什么呢?叫java.exe这个命令。
03:04
啊,对某个啊字解码文件,字解码文件进行解释运行啊,咱们java.ee啊,这个咱们当后来开始用这个eclipse了啊,在用eclipse之前啊,你回忆一下,咱们呢,在硬盘当中生成了啊一个两个三个啊自解码文件,其实对应着我们编写成序的时候呢,就会有三个类啊那么接下来接下来的话呢,我们会关注一下到底哪个类里边,咱们当初写那个没方法,所以呢,咱们后边呢,通过Java,然后呢空格一下,后边呢我们写的是具体的某一个类名。或者说呢,就是我们这个字解码文件的名字在这里边,比如我写没方法了,那相当于是把这个呃名字就放到这儿了,相当于咱们解释运行的是某一个这个词解码文件啊,啊它呢正好也对应着某一个类码啊,会对某个磁解码文件呢进行解释运行啊相当于呢,就把这个词解码文件所对应的类加载到内存中了,将啊这个某个自解码文件呃加到这个内存中。
04:15
内哎存重哎,那么加载的加载到这个内存中的这个过程,咱们就称作呢,叫类的加载,哎,此过程。啊就称为啊叫类的加载,注意这个类的加载咱们不包括这个前面说的这个过程啊,啊不包括这个事儿啊就前面呢,这是一个编译的问题,后边呢,咱们这才是一个叫解释运行是一个加载的过程。嗯,此过程呢,就称作叫类的加载啊,就是类的加载,那我们还接着去说啊,此时呢,还没有出现这个大class啊,下边呢,这句话非常重要啊,说加载到内存中的啊,这个类啊,说我们就称为叫运行石类啊,说此运行石类。
05:07
哎,就作为咱们这个大class的一个实例,这一段这句话呢,稍微比较抽象,比如说啊,比如说咱们呢,这个编译以后,这个person呢,是咱们写的这个程序哈,这个程序里边呢,咱们就生明了一个类啊叫person了,那当我们经过编译以后呢,咱们就会生成一个四解码文件,就叫做person.class就这个是吧,咱们在这个。呃,在这al这块哈,Alt这块咱们这边第11,呃,这呢,就咱们这个对应的这个词解码文件,哎,这个词解码文件,这是编译的时候呢,帮我们生成的,这还不算类的加载,然后当我们呢,使用这个叫java.exe的个命令,把它呢进行一个加载啊,此时呢,这个点class文件对应的这个类就会加载到我们的内存当中啊,那加载到内存当中整个过程呢,就称为类的加载,那加载进来的这个person类,这个类本身啊说就充当了我们大class斯的一个实力。
06:10
哎,就相当于咱们后,呃,咱们这个上边讲的说这个P损一样啊,这呢,咱们在程序里边这不显示的去用这个代码了,那加载到内存当中,这个类本身啊,我呢说就是它的一个实例。但是你这块呢,类本身你又不能这样写。这在咱们Java语言里边,你这个东西它是个类型啊是吧,不能这样写啊,所以咱们呢,后边给它补了一个属性啊,我就要点class了一下啊,那此时的话呢,其实它表示的还是我们这个类本身啊,这个类本身呢,就充当了我们的大class的一个实例。啊,甚至大家也可以换句话说呢,说累,以前咱们讲的通过类呢去造对象,现在呢,我们说这个累啊,累也是对象啊,类本身也是对象,谁的对象呢?诶,大的class的一个对象,诶大的class一个对象,呃就呃举一个不是特别合适的一个例子啊,就说这个以前也提过啊,就比如说这个概念这个词啊,呃,概念就是说我们比如说这个叫手机,然后后边呢,你去解释手机真的就相当于它的一个概念了。
07:14
但是概念本身它也是个词儿,概念本身也得需要一个概念去解释。那就像类呢,可以造对象啊,类本身呢,还是另外一个类的对象,不是特别合适的一个例子是吧,当然大家你稍微能够感受一下啊,就是类本身也是对象,所以呢,这样一说,那基本上我们Java语言,咱们以前不是说过一个事儿,对叫万事万物皆对象。那现在呢,你有没有深刻的理解是吧?这个事儿呢,你可以去想一想啊,万事万物皆对象,这个你可以从很多方面去说啊,首先呢,咱们讲面向这的时候呢,基本上都是通过这个对象点儿这个属性啊,方法呀等等去调的哈,呃,同时的话呢,呃,你还可以说谁呢?说一下咱们这个file说呢,你硬盘中的一个文件,诶你文件在我这还是个对象啊,就是file类对象,说网络当中的一个访问地址,访问地址呢,我们就是一个UR类的对象,哎现在呢,我们怎样反射说反射呢,提到了说任何一个类它其实也是个对象,这样的话呢,就解决了,前面我们提到了说呃,你对于类当中的静态的结构不是直接通过类去掉了,那怎么还叫对象呢?那你可以呢,说你这个类本身也是个对象呢啊,那我就可以理解为呢,还是通过对象来调的啊,是这样的哈,以及呢,我们可以通过这个呃,涉及到前端的一些这个操作,包括呢,我们这个数据库的操作,哎,凡是呢,需要跟我们张va去交。
08:42
库的时候,前端里边呢,你一对的标签是数据库当中呢,呃,一行一一条一条的记录,在我们账号层面都是一个一个的对象,哎,万事万物皆对象啊,顺便我们插入入一下这个事儿啊回过来,那这呢,我们说这个运行时类,把这个词呢,我们提提到啊,就是我们运行的时候,通过java.e命令执行以后,夹杂到内存当中的这个类呢,咱们就称作叫运行时类,就比如咱们上边这个person类,你在呃内存中已经出现了,那我就称作叫运行实类啊,因为你是运行时候进来的啊,那它呢,就作为我们大的class的一个实例啊,这呢就是大家明确一下,就尤其是后边这样的一句话啊,啊,就是大克拉斯这个实例了,那换句话说啊。
09:29
哎,换句话说,哎,换句话说呢,我们这个大的class这个实例呢,它就对应着一个运行实例,哎,就对应着啊一个啊运行实例,OK,这呢,我们就说完了,言外之义,我们这个大的class大家呢,回头说,哎,我想提供一个大class的实例,注意可别去new一个class啊。说用一个大plus不对,这个大的plus实际呢,就是用一个运行实例来进行复制的。
10:00
啊,是这样的一个过程。
我来说两句