00:00
那下边啊,咱们来看一下叫方法返回指令,那我们说方法的话呢,肯定都要考虑呢,叫返回值类型,那主要呢,我们把方法呢,按照反回类型这块呢,可以分成两大类。第一类的话呢,就是有具体的返回值类型的,还有一种呢,就是没有返回类型,就是我们通常所说的呢,叫做VO对吧,包括呢,我们像实例初始化方法那类,或者接口的这个初始化方法,就涉及到我们这个CL,这个时候他们都是没有这个返回值的,那都是一个VO的,那这种呢,也是一个具体的返回值类型,这块是一个场景,那除此之外的话呢,就有具体的返回值类型。那比如说你是基本熟悉类型中的布尔BAT char short或者int,那统一的还是用一个I return来表示,同时后边呢,会对应一个你return的这个结构,对吧?那除此之外的话呢,是long return啊,Float呀,Double啊,或者是引用数据类型啊,就是用我们对应的后边这样的几个这个指令就可以了。
01:02
啊,这块呢,大家应该一看呢,都比较清晰,其实呢,咱们在讲到前面这些结构的的时候,凡是你涉及到方法了,但最后呢,是不是都会有考虑这个return的情况,只不过呢,咱们前面没有具体具体呢给大家展开来说对吧?行,那下边呢,也有具体的这个举例子,比如说呢,我们有一个叫I return指令,它呢就会将当前函数的操作数占中的这个占顶的这个元素呢给弹出。弹出弹到哪儿呢?弹给你这个方法的调用者,就是我们可能是在另外一个函数当中,是不是调用的当前你这个函数对吧,把这个当前这个函数的这个最终占顶的这个值呢,弹出啊,付给咱们调用者的那个操作数占。操作出战就是我们那个具体这个战争呢,因为你这个呃,一结束方法的时候,这个函数的战争呢,就弹出来了,对吧,然后就把人家这个调用者呢就露出来了,它就成了一个,哎,整个我们说虚拟一站啊,其实就这个意思,比如我们这呢是一个方法A,这个是方法B,这个方法B呢,你有一个艾瑞return,那就把你这个里边的你这个操作书占中占点的元素呢给它弹出,然后呢,一弹出你整个这个战争也结束了,那就付给了咱们A方法啊,你这个里边这个操作书占的这个位置了。
02:14
就是这个意思,行,那你当前这个方法A里边整个操作出站呢,包括你的这个战争啊,整个就被这个discount了是吧,就丢弃了,行这呢我们说的叫return操作结束方法的意思,那如果说我们还涉及到呢,叫S就是同步的操作的话,这个咱们在咱们在这个后边。咱们在这个后边这块呢,专门还会去讲这个同步的问题啊,最后这块对吧,那下边的话呢,那这个这块呢,我们只是先说一下,因为同步的话呢,你涉及到呢,要握住同步监视器,那你要是想return,那记得在return之前呢,务必呢把咱们当前的这个同步监视器的这个锁呢要释放,所以呢,要有一个叫monitor的这样的一个指令。啊,这样才可以,这呢,咱们讲到C的时候呢,咱们还会说这个事儿。
03:00
行,然后最后呢,究其整个这个针,那刚才也提到了这个意思了,行,下边有个具体例子,咱们就不在这儿看了,回到咱们这个代码层面,那我们来看一下这个情况,这呢我就把这几个相应的操作呢都写出来了,其实比较简单,咱们直接呢来这块呢,刷新一下看看就行。首先的话呢,我们看一下这个return in。Return in比较简单直接呢,就返回一个int类型的对吧,所以这时候呢,就叫I return。就叫做这个艾瑞return,把你整个这个占顶的这个操作数占顶的元素呢,给我们返回,那这个占顶的你看我们是先在这个操作数站当中,是不是来了一个500对吧。然后把这个500呢付给咱们,在这个局部变量表中,这个索引为一这个位置上,那索引为一上不就是个I嘛,把这个500呢就付给他,然后呢,再把这个500的这个就没有了,然后再把500的数据拿过来。再做一个叫I return,那不就把占点的元素呢,给它返回呗,对吧,行就是这个意思,好,然后下边这个呢。叫一个double,那double这块呢,它返回的自然而然的就是一个DW,在d return呗,然后再往后呢,是一个string string呢属于引用类型,那就是a return。
04:06
然后下边呢是一个数组,数组呢也属于引用类型,也是一个a return。没问题,然后下边是个float,注意我这个float的话呢,你看我刻意呢,这块是写了一个int型的return,一个I,那这时候我们返回的这个是叫f return呢,还是叫I return呢?是不是F铝圈?对吧,注意这时候呢,跟我们具体返回的,你这个I说是一个什么类型,其实关系不大,主要呢,我们是看这。主要是看这或者换句话说呢,这个时候呢,也是把我们这个I呢,是不是相当于转型为一个float了。对吧,所以主要我们还是看这个你返回的类型这块,我要返回是一个float的类型。OK吧,这是一个问题,行包括了咱们上边呢,你像这些invo这些方法,咱们通常都写成是一个了,对吧,像INVO4他们呢,是一个word的情况,我们就直接呢是一个return。啊,这就可以了,直接是一个return,那包括呢,咱们当前这个类,它也有一个这个类实力构造。
05:04
器方法对吧,这个它里边呢,呃,也是一个return啊,像这个类实力构造器方法呢,它直接呢,也是一个没有返回值的啊,就是这样一个场景。嗯,你看这个在这里边儿是不是也提到了这块,倒没具体说它是一个。嗯,在那我们得看这了啊,什么意思啊,就是嗯,关于这儿呢,咱们调的是一个叫井一,你在这块看一下,这这个井一它在这写了。当前咱们是一个in对吧。关于我们这个方法呢,实际上是这个in的一个方法,这个方法呢,关于它的一个描述符,那它是一个VV就是Y嘛,啊,所以说我们在这里边。那具体看它的时候呢,这就是个return,就没有具体的叫什么return了。行,这呢是我们说的,那这个场景啊,大家熟悉一下,然后后边这块呢,你看我这儿还写了一个BAT的啊bet的话呢,我们说就没有具体的叫b return了,那就统一的体现为是不是叫I return呢。OK吧,哎,是这个意思,行,然后刚才呢,提到了一个这样的情况,比如我这块呢,写一个叫public word,那叫做method。
06:08
Return,我们再去调用一下,刚才这个叫return,比如说叫BY,然后把它呢付给咱们一个叫int型的一个I。对吧,来看一下它这个时候呢,我们编译一下。做一个刷新行,那当我们去调用这个method return啊,其实对应的就是我们下边的一个方法的时候,那在这个方法里边的话呢,我们相当于是不是又调另外的一个方法,这叫return but,这个方法的话呢,那就是一个叫invoke virtual,这个大家知道为啥是吧?那调这个VO virtual不属于咱们前面说的VO interface static special,那这就VO watch了,行,那调它的时候呢,我们就开启了一个新的战争,然后这个战争里边的话呢,你最后返回一个零,是一个BAT类型的,哎,BAT类型认为呢,实际上是一个int类型,对吧?那返回之后呢,你当前的这个战争呢,其实就被discard了。就被抛弃了,然后呢,我们这个方法呢,就属于调用它的一个调用者啊又这个战争呢,就是占顶了,咱们虚拟站,虚拟基站的占顶,然后把你那个结果的话呢,是不是就付给了我们这个局部变量了,是吧?啊就放放到我们这个局变量表里边的这个I的位置上了。
07:17
那这个操作完以后,那个结果呢,也是进入咱们这个方法的操作数站,你这不是零嘛啊,那个零就放到我们这个方法的这个操数站一个零,然后把这零呢,这个I下一放到人家这个里边这个I的位置上负个零,注意。啊,就是这样我们说的。这个场景。对吧,这个场景行,那关于这个返回值这一块呢,呃,对应的这个指令其实比较简单,这个大家呢,整体整个呢,哎,我说完之后呢,你熟悉一下,应该呢,就能掌握好这个咱们就过了。
我来说两句