00:00
好,那么属性的话呢,我们就说完了啊,相对来讲属性叭,方法呢还是要简单一些的啊,主要呢这块呢,就是大家画内存图啊,相当于是一个难点了,那那么接下来的话呢,我们再要考虑,那就是关于这个类中的第二个成员叫做方法了,方法这块的事儿啊就比较多一些了,诶我们后边呢,也会通过很多的笔墨呢,再去强调一下方法的使用,方法呢也是我们类当中,放眼望去呢,我们会有好多个成员。属性、方法、构造器累不累啊?或者代码块,哎,这样五类成员当中,方法是最重要的,换句话说,这一个类是干什么作用的?你的功能强大与否,主要取决于方法。啊,OK,好,那么方法这个呢,是一个什么样的意思呢?咱们首先看一下这个课件啊,课件里边先找到这儿啊,诶画了两个图啊。这个大家不知道这个都玩过没有。现在有的有的直接就王者荣耀了,就是吧,现在这个几岁的孩子都不会王者荣耀哈,不会的话呢,这个社交都出现问题了哈。
01:03
啊,对,这是。啊,这个应该是八零后九零后可能都会玩啊,七零后应该也会玩哈,对拳皇啊。这个超级玛丽是吧,这都是极其经典的啊。哎。拳皇这个也称为那叫街头霸王是吧,街霸啊,嗯,这个这个在这个游戏当中,咱们就以这个游戏为例吧。在这个游戏当中啊,我们说每次人物的出拳出脚,哎,或者叫跳跃呢,假设呢,我们都说需要编写50~80行的这个代码。啊,那如果你真的每次出拳出脚和跳跃的时候呢,都去写这50~80行,那你就会发现,那这个代码呢,会太冗余了是吧。啊,你像这一场比赛这里边儿啊,这个你得这个这个比如说出拳得出很多次,每出一次拳,这就这么多行代码就出去了,不合适啊,可读性呢也非常的差,那么我们为了解决这个代码重复编写的问题,咱们就把这个出拳出脚或者跳跃这样的功能代码呢,把它抽取出来,放到一个大括号当中。
02:03
那为了调用方便呢,起个名。哎,就每次的话呢,我们就通过这个名呢,去调你这样的一段代码就可以了,那么起了名的这样的一段代码,实际上呢,就称为是一个。就在不同的语语言当中叫法不一样了啊,诶通用的话呢,是叫一个函数了。啊,像我们说的面向过程编程,哎,它的主体的单位就是函数。是吧,哎,其实就是我们这里边儿提到这样一个函数,那么在Java当中呢,我们没有把它叫做函数。哎,叫做方法了。啊,英文的话呢,还真是叫方法。啊,你在其他语言当中,他可能直接就说这叫function啊,其实我觉得叫函数挺好的。他跟咱们数学当中学的那个函数呢,其实也就统一了是吧,其实也确实呢,存在这种统一性,OK啊。好,那叫方法就叫方法啊,OK,那刚才呢,就提到了,我们说这个方法的一个作用啊,就是我们把相应的一些功能。啊,你想做什么功能啊,把这个功能代码我们就封装在一个方法当中,当你需要调用这个功能的时候,我们只需要通过这个方法的名去调啊这个功能就可以了。
03:11
呃,那代码的话,你就不用每次一调,我们就写这么多行代码,我这个代码就放到这儿,就放这一份,呃,你要调我就通过名调一次,再需要就再调一次。哎,这样呢,整个可读性呢也会更好一些,好,下面呢,关于方法的一个说明啊,方法呢是类或对象行为特征的抽象,呃,用来完成某个功能的操作,哎,在某些应用中也称为函数,哎,像这个SQL里边呢,我们称为呢叫过程啊。叫过程啊,其实呢,在SQ里边也有具体的函数,它把这个功能呢分的又细啊,又叫存储过程,存储函数它分的又更细了啊,根据这个是否有返回值来区分的,这咱就不管那么细了啊,哎,你就知道呢,我们这里边方法的主要作用哎是什么。哎,就提到了这样的一个事情啊。给我们补充一个啊,这算是。
04:00
哎,方法的一个理解啊。哎,就放在这儿了,好,那么具体这个,呃,我们使用方法的一个好处。通过刚才呢,我们举这样的一个游戏的例子,其实也能看得到了啊,诶我们呢,把这个功能封装到方法以后,可以实现代码的一个重用。啊,减少冗余,简化代码,需要用的时候直接调我们这个名就行了,不用每次都得编写那么多。哎,减少冗余了。好,这呢是我们说的这个方法的基本的一个理解了啊,哎,下面提到说Java中这个方法呢,是不能独立存在的,所有的方法呢,必须生命在类里边。啊,其实这呢就提到了,在咱们Java这个世界当中啊,第一等公民。啊,一等公民是对象啊,对象的话呢,是由类派生的,所以类啊是老大。呃,在有一些编程语言当中,它也是面向对象的函数啊,这个这个级别很高啊,函数是可以独立存在的。在Java里边不行啊,Java里边你想定一个方法,定一个函数,你一定要说明这个方法,这个功能是哪一个类的,所以说它不能够独立的存在,必须要放在类里面。
05:08
嗯,这呢是跟有一些语言它的一个区别。啊,像GS当中我们可以直接就声明一个函数啊,不需要依赖于类存在啊,在Java中不可以啊,这个呢,我们也算是一个注意点吧,我就先暂时的也放到这儿啊。好,呃,这个呢,我们说清楚它的好处了,那下边呢,我们举一些例子,其实呢,我们在前面的使用过程当中啊,已经见过很多方法的使用了。简单的拿过来啊,Ma里边有个random,诶,我们直接呢就能够获取一个,呃,指定范围的一个随机数啊,开方啊,打印信息第一天我们就接触了ho了,哎,那你依赖于这个print。啊,还讲了个printer啊,然后呢,这个new scanner的话呢,我们需要呢,从键盘获取一个类型的数据啊调的是这个方法。哎,包括呢,我们这个讲A瑞里边的二分查找啊,排序啊,哎,这个判断两个数组是不是ES啊,哎,这都是线程我们调过的方法。
06:03
诶,只要你需要相相应的这个判断了,排序了,直接调它就行,不用你再去粘一遍代码了。哎,这就是使用的举例啊好,那么下边呢,有些具体的声明的举例,就是我们自己呢,来写一些方法了。那咱们就说到这儿,咱就写一些方呗,所以在这个method里边啊,这我就光写这个框了哈,哎在这块。啊,这个咱们这个代码的话呢,这个也别蒙了啊,我们就按照这个顺序来的,今天讲到零三啊讲属性了,讲方法,方法这块呢,我们这块呢,诶写点这个测试代码。好,这块呢,我来一个。咱们最熟悉的就是人类了是吧?哎,咱就写这个人吧。诶,那么前面的话呢,我们讲过属性了,呃,现在重点说一下方法。哎,方法,哎,属性这块我们也快速的,呃,先整俩啊,String的name inter性的age char类性的gender啊,这都比较熟了啊好,下边我们来看这个方法。诶方法的话呢,就是你这个person这个类啊,它具备的功能。
07:01
哎,它有什么样的功能,我们把这个功能呢,就声明为是方法。这个我们昨天也说过,比如说可以吃是吧。哎,这个我们就简单点啊,说这个人吃饭是吧。哎,Public。对,可以睡觉。嗯,这个来说多长时间是吧。呃,人至少呃每天睡眠。啊,多少哎,小时啊,哎这个的话呢,就在我们调用它的时候呢,给它附上值就行了,哎再来一个啊,Public avoid啊,比如说in啊说话咱先把昨天常写的几个先给大家整上啊,Interest是吧,这爱好吧。好比是吧。哎,我的爱好是啊。哎,好比是吧。嗯,那这块的话呢,咱们在整点不一样的吧,比如说呃,你在返回这个爱好的时候呢,我们在,诶我就要求这个位置,你看我变了啊,我整一个改成个论类型吧。
08:03
这个呢,我这样来处理哈,打印的同时呢,我们再这样一下。哎,我叫个infer,这个infer的话呢,我这么着。来看一下啊,我把它呢放在一个珠串里边,然后呢把它呢往下提。哎,这个往下提,诶这个往下提。哎,这样这个呢,是c shift加这个上下。啊,就这样移动啊好,然后在这的话呢,我们把这个音符呢给它,诶打出来,打出来的同时我再给你返回一下。啊,这个我写方法的时候呢,我就诶想让大家先看得到啊,看到这个方法声明的时候呢,它有好多地方是不一样的啊。没问题是吧。嗯,就是这块的话呢,相当于我们是呃,拼成了一个字符串,把字符串打印,同时呢,还返回啊,一会儿呢,我们就讲这些细节了啊。嗯,再来一个,再来一个他吧。嗯,这个也是返回的,我来一个int啊,我这个叫get。
09:01
哎,在这我就个age。对啊,大家现在可能还比较迷糊一些啊,哎,不要着急,咱们一点点展开说好,那么下边的话呢,首先举几个例子,就是咱们相当于自己声明几个方法,我这块呢,其实声明了四个啊。哎,我CTRLC一下我都拿过来。哎,第一个,哎第二个。第三个。第四个。好,我这块呢,我就暂且呢,先放这四个。哎,这四个呢,其实我,哎我在声明的时候呢,还是都挺,呃,注意到它的各个区别的什么意思啊,你看一下啊,哎,你看一下这个位置。哎,你看这俩呢,叫VO是吧,哎,其实这个位置呢,我们表达就是这个方法呢,是否有返回值的意思啊,哎可能没有,也可能有,有的话呢,类型哎可以是基本数列型,也可以是引用数据类型。
10:00
后边呢,就是这个方法名了,再后边这块呢,就是我们叫行参列表了,哎,可能没有行参。也可能有。诶,然后呢,跟我们这个反射类型这块呢,这个没有说的一一对应了哈,哎就是说你这块呢,比如说是wide的,我这就可以有型参,哎你要不是wide的话呢,哎,可以有形态,也可以没形态,就你具体问题具体分析了。啊,OK,诶,所以呢,针对于刚才我写的这几个方法,咱们看一看,在Java当中我们定义一个方法。诶,因为咱们把方法这个地位提的很高了啊,说一个类当中啊,这个功能强大与否,主要看方法啊,所以这块方法到底怎么声明啊,整个的格式,这是咱们今天啊,今天咱们其实重头戏呢,全都在讲方法啊,哎,这呢是咱们最初的这样一个最重要的内容。这个要不会的话,那你这个就方法这块呢,就很难自己去定义了,那这个类呢,你这个功能就不完善啊好,那我如何去如何去声明一个方法呢,我们按照这个从前往后顺序咱们捋一下啊,首先呢,这块我们看到的都是用的public。
11:00
对,这个我们称为呢,叫权限。哎,修饰符。啊,一会儿我们也说这个事儿啊,然后再往后呢,这个位置。对,我们称为,它叫返回值类型。然后再空格一下。哎,方法名。哎,然后呢,一对小括号,这个呢叫行参列表。哎,然后呢,一对大括号,大括号里边呢,去写对应的代码是吧,这个代码呢,我们称为它叫方法体。啊,像if else if呢,里边的叫执行语句啊,执行体,我们这个呢叫方法里的叫方法体,这个呢,哎这么好几个加在一起呢,哎有的时候呢,也会起个名啊,称为呢叫方法头啊。哎,或者你称为他叫方法的声明。啊也可以,这个都还好啊,方法头的话呢,就明确指的是他就跟说一个人呀,这是人的这个头,这是人的这个身体是吧。哎,这样的意思啊,行,那咱就就直接就用这个吧。
12:00
好,那么我们真正再去说明一个方法的时候,以后还会讲啊,除了这几个位置之外呢,还有其他的一些呃信息,你比如说我们在这个位置呢,可能还会加入一些其他的信息,但你想咱们讲may方法。Public。Static。反问之一型是吧,然后may是不是这块有个static?哎,所以这个位置其实还可以写其他的关键字哈。呃,其他的一些关键字啊,这个或者叫其他的一些修饰符吧。你看我这个修饰符呢,这个叫权限的修饰符,那仅限于像public private这些啊,这个呢,其他的比如说static。比如final。啊,比如abstract啊,这都是其他的一些啊,这个以后咱们再讲啊,然后呢,另外呢,就是在后边走的过程当中呢,在这个位置啊,以后呢,我们可能还会见到呢,可以去Rose啊,抛出这个异常的类型。哎,这呢,就是以后我们要说的这个位置,哎,所以暂且这块呢,我写一个柱啊。
13:03
哎,这个注什么呢?就这个中括号中的这个内容,哎,不是必须的啊,哎以后。啊,再讲。嗯,以后再讲。行,那IG呢,就除了这个括里边呢,剩下这些呢,这都是算必须的了。哎,我们现在讲。好啦。这个我们现在要讲了啊,现在要讲的话呢,那就具体关注这些细节了,那就一个一个来了。啊,一个月来了,好,首先5.1。啊,这个咱们把它一次性就说透,后边呢就全是练习了,就啊第一个问题权限修饰符。啊,那既然提到权限修复法,首先你得知道第一个事儿,那这个我们可以用的权限修复都有哪些是吧。诶,可以使用哪些。或者叫Java规定了哪些权限修饰符呢?是吧,诶这个呢,我们说的Java规定了有四种啊。哎,其实有四种权限修饰,有一种呢是没有符号的啊,哎,这个分别呢有private。
14:05
呃,缺省。啊,这个protected。哎,Public。哎,这呢,一共是有这样的四种,我这写的时候呢,其实我是有一定的顺序的啊,就这个越往右的话呢,权限就越大,你看这是私有的就是。嗯,就是不是谁都能钓的啊,而这个呢,是public的谁都能钓啊,这个谁呢,指的就是在我们整个至少呢,是在我们这个mole范围内啊,哎,你各个不同的包里边呢,都是有机会来调用的。那private的话就是我这个权限特别小,私有的出了这个包的话,我就调不了了,细节以后再说啊。好,那既然呢,我们说规定了有四种权限,这个呢,具体的话呢,哎,我们放到。哎,这个,呃,封装性在讲啊。诶放到封装性的我们再去讲,所以呢,暂时的话呢,咱们关于这个全员系服这块呢,咱们不就不去细究了。
15:01
啊,那么暂时。诶,但是大家声明方法时啊,可以先都。呃先,哎都呃写成谁呀。Public的。也就是说呢,这个权限呢,就比较大一些。啊,那其实实际情况的话呢,就是大家,呃,比如说这块我们拿到这个person啊,你说我们这个呢,Get age不是说了叫缺省,缺省什么意思呢,就是可以不写。这叫缺锌啊,不写你看也对是吧?啊,这个咱们暂时呢,先不去研究它啊,你就都写成public就完事了啊,这是第一个问题啊,第二个。第二的话呢,就是我们提到这个先不管了啊,返回值类型。呃,首先呢,你明确呃,怎么叫返回值类型呢。嗯,他刻画的是什么问题呢?返回值类型是吧?哎,首先呢,返回值它是一个值,那就是一个变量。
16:00
啊,然后呢,这相当于是你这个变量的。类型。对,所以它这呢是一个类型,也就说你要写的话呢,你得写,你得写int,这都是类型。你不能写数啊,你写个十,那这不行。啊,不可以啊,所以这个反应类型它刻画的什么问题呢?就是当我们调用完这个方法的时候呢,你是否会返回给我一个结果。哎,就这意思啊,哎这个描述。哎,当调用完一个,哎,调用完此方法时啊。诶,此方法是是否需要返回一个结果。如果需要返回一个结果,那就是有具体的这个结果的类型,你告诉我类型就行,如果要没有结果呢。我不需要反馈结果。哎,那你这块呢,就是对,但是你这个位置你不能省也得放个东西是吧?哎这个东西呢,就称为呢叫VO。哎,你看我这写的说是否需要返回,所以呢,从这个角度出发呢,我们根据这个反殖类型这块,我们就有一个分类了。
17:02
哎,这个分类呢,就是两类,第一个呢是无返回值类型。哎,第二个呢,就是有具体的反应执行。返回值啊类型好了,那么无反应类型呢,这块我们说呢,就是诶使用Y的表示即可。啊,也就是说呢,当我们调用完这个方法之后呢,你说不需要返回啊,就是就不需要任何结果给我,那就用word,哎,这个说这样的有点空洞了啊,比如说。大家你看我们上面这个方法有哪些,我们是嗯没有返回值呢,或者我就不需要呢。哎,我说这个line方法不需要。哎,比如说他,哎这个我们再讲一下,哎,比如说呢,俄瑞斯里边这个so的方法不需要。哎,对吧。呃,少的方法。啊,这个呢,我说到这儿的话呢,大家你完全可以呢,比如回过来你看啊,我按住CTRL键是不是就能看这个信息我一点。
18:06
这是我的。哎,那就说明人家是不需要的,你看什么意思啊,就我这儿呢,有个字符串,你把这个字符串你打印到控制台就行了。我不需要你返回告诉我,诶成功了失败了,那不用啊,你就打就完了,所以呢,不需要任何的返回。那就它啊,然后呢,接着CTRLN一下,这个我们可以呢,在这呢去写A。然后呢,在这个位置啊,你改一下叫all places是吧,这个我们就能看一下17的这个版本当中俄瑞斯的源码啊,点一下就进来了。这个呢叫CTRLN啊,找你指定的这个源码类啊,然后CTRL f12。啊,因为你看这个源码是太多了啊,这个我们想找一下这个solve的方法啊,怎么办呢,你有CTRL。F12啊,这个呢,你就接着写一下,叫salt。哎,这个我们比如找一个int型数组吧,就这个呗。那这个呢,你看也是个Y。诶,就是我们第四的方法不是要排序吗。
19:00
你把这个数组你放到这儿,放完之后呢,我就咔咔一顿给你操作排好了啊,说你需要返回吗。不用啊,你就排好就完了,然后呢,我这个数组放进去,那个数组自然而然就有趣了。不需要你再告诉我什么信息,所以呢,就是Y的。哎,回过来这个大家体会一下。来体会一下啊好,这个我们就说完这个事儿了,就是有一些方法呢,我们是不需要返回的,你就用Y表示就行,好,下一类有具体的反应类型,这呢就需要哎指明。哎,这个返回的数据的类型。啊,那这块呢,我们说呢,可以是基本数类型。对。基本。数据啊类型。啊,那也可以是。对,引用数据类型,说白了就是什么类型都行啊。哎,乃至于说呢,你这个位置,我我我想放个数族是不是也可以。
20:00
哎,也可以啊,哎,但是你注意啊,我们这放的是类型,也就是说呢,像我们从变量的角度,变量我们定义的时候呢,说数据类型变量名,哎附一个变量值,注意我们这个位置放的是123的哪个哪个东西啊。对,放的是一啊,这个放的是类型,你不能放二和三。二个三是怎么着,是你方法里边最后要给我返回满足这个类型的一个东西,你可能返回的是个变量,也可能返回的是这块指定的一个常量的。都可以啊。好,这个呢,就需要我们有具体的返回值了,诶可以是这个,也可以是这个,那具体怎么去返回呢?哎,这个里边呢,这一说呢,就细了啊说呢需要在啊我们说这个诶方法内部啊,啊配合使用什么呀,是return。对这个关键字呢,我们再加上一个啊,你指定这个类型的。啊,就我这加个角A满足这个返回值啊,类型的变量或常量。
21:01
这个一看有点懵是吧,哎,咱们直接看例子啊,哎,你看这儿。我这是写是吧。那就意味着你在这里边儿,是不是当我调完这个方法之后呢,你得给我返回一个这个类型的一个值啊。哎,你看我这不就返回了吗。哎,这个返回呢,用的这个关键字呢,叫return。啊,一会呢,我们再专门说说它啊,这个return的话呢,我返回了一个,我这儿返回的是个变量。哎,我呢,就把这个这个变量啊,是这个类型的,这就可以了,你说我不写。你看不写报错了。你往这一放,说你缺少一个返回值的这样的一个语句了。就是你明明你告诉我调用这个方法,你能给我返回字符串。返回的呢,没给我呀。所以呢,只要这块出现的不是wide的啊,里边是一定要有这个return的啊。当然我说的一定的话呢,以后大家学完异常的时候,你发现诶说的不对啊,暂且的话,我们理解成就都得有,以后呢,其实你要没有return的话呢,你抛个异常也行。但现在咱们还没讲异常呢是吧,哎,注意啊。
22:00
好,这个呢,返回的就是一个变量了,那我们也可以return一个敞量哈,呃,这个我就随便咱们从语法上来说一下,我就return ABC,当然这块return它了,这个已经return都走了,这个你就执行不到了是吧,把这个注释一下啊。哎,这就是个常量,这就是个变量。哎,这就行啊,那这个也一样啊,说呢我调get age呢,你返回一下这个年龄,哎,我这个in的类型,那你一定给我返回一个满足这个类型的一个变量或者是常量,哎,就可以还是使用的return。哎,就OK了啊。这个OK吧。嗯,行,这个我们说清了啊,就是你得写具体这个操作啊,后边咱们就多通过练习呢,大家去体会就行啊好,那么这个讲完之后的话呢,其实啊这块呢,就算是完事了啊。哎,当然呢,想给大家再说一个,呃,稍微高级的内容,哎,咱们算是一个经验之谈啊。哎,经验啊,就是大家呢,可能也知道说呢,诶反问这疫情什么意思了,关键问题就是说我们在自己声明方法时,我到底要不要。
23:01
提供这个返回值类型还是我写成word呢。这是咱们一个关键点是吧。说哎,我们在声明方法时是吧,哎要不要啊,提供反馈值类型,有什么经验之谈呢。还是写成Y的呢?怎么大家觉得?怎么着?先行的。然后需要的话呢,我到时候再改,那那你这个需要是指的什么呢。怎么着,想想。哎,这时候你往哪靠呢,你就想咱们举过这个例子哈,你比如说我们这块呢,说有具体反应值类型,我们这样,呃,这个我们也可以呢,去举例是吧。比如说你看我们有反复类型的,看看上面这个方法。比如第一个。这个需要反回不?需要啊,我我要你的目的不就是你得给我一个随机数是吧,你调完之后你没事了,那我要你干啥是吧?哎,所以呢,这个方法,哎,它肯定是得需要有返回值的。
24:04
哎,这是一个是吧,嗯,再再整一个。来开方,这肯定也是啦。嗯,然后这个我就不粘了啊,这个是不是也是。诶,我呢需要从键盘获取一个数据啊,然后呢,你输入的这个数据呢,它就以这个方法的方式呢,给我们返回了,拿个变量接收一下。哎,所以这个呢,就是哎,这也是啊,其实挺多的啊,我就写了个等了。诶诶没粘过来啊。嗯,CTRLC啊。哎,这个呢,就等了啊行,那你看我们这块呢,这个经验之谈怎么说呢。好像也没有统一这个规律啥的是吧,就特别想写成那叫具体问题具体分析是吧。啊呃,这个呢,我们就这样来说吧,就是说呃,咱可以呢叫诶根据方法,呃,具体的。哎,这个。叫什么呀,实现了功能啊。
25:01
哎,功能来决定啊,其实呢,呃,换句话说。哎,换句话说是吧,哎,就是具体问题具体分析啊。嗯。哎,所以这块呢,那就是哎,说白了就是经验呗。啊,你像这块呢,我们需要一个诶随机数,那你就得给我一个,我需要你返回一个值,从键盘获取,你得给我呀,那就得给一个啊,诶所以呢,这个就具体问题具体分析,所以我们就通过一些练习,那下边这不练习挺多嘛,我们看看怎么去处理啊,这是一个,呃,另外一个的话呢,这个题目呢,他在诶告诉你说我们什么一个方法,这个方法你调用完以后呢,需要给我反馈什么什么,他说的很明确啊,所以呢,这就根据题目的要求啊。诶题目要求,诶我们去做这个处理就行好,那这样的话呢,我们关于这个反税类型这块呢,咱们就来说清楚了,诶就这儿了,然后下边的话,我们来看下这个叫方法名,诶方法名这块呢,其实比较简单。方法名。
26:01
这个方小明的话呢,我们说呢,它其实就是一个标识符是吧。属于标识符,呃,那么这里边儿呢,我们需要强调一点,那就是呃,大家呢,再去定一个方法名的时候呢,需要满足。诶标识符,哎,咱们讲过的这个规定和规范是吧。啊,然后同时呢,这里边儿还需要大家明确注意一个问题,就是要建明之意。呃,这个呢尤其重要啊,我们再定一个方法的时候呢,这个方法名大家在一开始诶想清楚这个方法你想干什么,然后呢,根据你要做的这个事儿去做这个命名。啊,你想想我们在一个例子当中啊,咱们定义的方法呢,可能是非常的多的,诶,咱们以前也举过这样的例子啊,就以string为例来进行说明。在这个当中。啊。哎,它呢,定义了非常多的方法啊,这个再往下找,这就是方法了,看方法特别多哈,那么这么多方法呢,如果你要起名特别随意的话呢,这个我们以后找也很费劲,所以呢,在定义的时候呢,我们这个方法到底是做什么用的啊,是做替换的,做重复的啊,还是做匹配的是吧,还是呢,想获取你的长度,还是获取你某一个,比如说字符串最后一次出现的索引,你看我现在说的时候呢,我看到这个名我就知道什么意思了。
27:17
啊,因为呢,它这个名呢,非常的清晰是吧?啊,这就是建明之意,那以后我们在定义的时候呢,大家也要啊,如此就可以了啊这块没什么特别多想要强调的点啊。呃,然后下一个呢,叫做行参列表啊,这个呢是继返回值类型之后呢,另外一个比较重要和有难度的一个点。哎,这个呢,我们写成叫诶5.4。哎,行参列表,首先呢,这个行参列表的话呢,呃,你得知道什么意思啊,首先行参,哎,它是属于有变量啊。诶属于叫局部变量。但局部变亮。好,那么属于局部变量,然后呢,它这块呢,只需要声明类型和变量名就行,你不要在这个位置呢,去写这个值,哎,我们调用这个方法的时候呢,我们才给他去传这个,呃,具体这个值的。
28:09
呃,然后呢,既然他写了个叫列表,那就意味着它可以有多个。啊,属于局部变量啊,这个且是吧,可以声明多个,这呢就是它的一个特征。啊,那么这个行参列表呢,首先我们再关注它的一个格式是什么样子的,诶刚才也提到过了啊,就是诶首先呢,它是放在这个小框里边的啊,在这个小框里边的话呢,我们写的呢,也就这块这个小框啊。在里边的话呢,我们会首先呢写的叫呃行参类型一是吧,呃,然后呢,行参一。哎,或者就是你的变量名义啊,然后逗号一下,多个变量的话呢,中间用逗号隔开。呃,行参类型二,然后空格一下啊,行参二,然后逗号一下,以此类推,如果还有就接着往后写就可以了。好,那么接下来的话呢,我们就要考虑说,诶这个行参列表,诶,我们什么时候需要写,什么时候不需要写呢。
29:04
啊,这个时候呢,我们其实又可以呢,依依据这个形态列表呢,把这个方法呢,分成了两种。啊,那会儿呢,我们讲的时候呢,也根据反问类型做了一个区分,说有反问型的啊,没有反问类型的分成两种啊,那么这儿呢,也同样的道理,可以分成了有形态列表的和没有形态列表的。OK啊好,那这块呢,我们也可以呢,去写一下啊,这个所谓的叫分类啊。啊分类啊,分成了就是无。哎,形态列表。哎,然后哎行参哎列表啊,哎另外呢,就是哎有哎行参列表。好来分成这样两类啊,这里我们就看一看啊,第一个呢,叫无形态列表。首先对呢,就是没有形态列表的话呢,这一对小括号呢,是不能够省略的。啊,这个我们指明一下啊,无形的列表,哎,就是不能。
30:03
哎,省略。呃,一对这个小括号,只不过呢,这个小括号里边呢,你什么也不需要写就可以了。那么首先我们考虑说,诶什么样的方法,诶它是没有形态列表呢?诶这个我们还是去举例哈,诶回忆一下,你看咱们看到上面这样一些方法,哪些没有形态列表呢?比如说。第一个是吧。哎,这个没有。哎,没有呢,就意味着他不需要啊。哎,这是一个,嗯,还有吗,再找。这个next line是吧。Next不是烂了nextt啊,这个呢,不需要。来CTRL一下。哎,这两个不需要,那我们看看诶为什么不需要呢。比如说啊,我这个呢,点random,我想取一个随机数。而且呢,这个方法呢,非常明确啊,它就是返回一个0.0~1.0范围之内的一个double型的随机数了。那你说我这里边儿需要传。传什么呢?
31:01
也不知道是吧。诶,所以这里边儿呢,我们提到这儿呢,就提到了说这个形态列表,它到底对于我们一个方法来讲有什么意义呢。是吧,它主要是干什么用的,为什么我们有的时候需要传参数呢?诶对这块你看我给大家呢,举一个形象点的一个例子哈。你看下边这块。哎,我是这样做一个类比的哈,嗯,比如说呢,咱们现在有一个方法了,这个方法呢,呃,做什么事呢,就是我们扎汁。啊,所以这个具体的杂制这个过程啊,就是咱们调这个方法的时候呢,它在执行这个过程,其实就是这个方法体了。然后呢,我们炸汁的话呢,你得需要有一些原材料啊。啊,我不知道你要炸什么汁儿啊是吧?哎,那么这个原材料,或者这个不确定的这个原材料,哎,就我们作为这个行参呢,给它诶穿进去。所以说这个行参呢,就类似于我们这个榨汁的时候呢,你这个原材料了,我把它呢放进去,放进以后呢,我们在这个方法里边呢,就一顿操作。哎,操作完以后的话呢,这个诶对应的就有这个返回类型了哈,呃,你是需要返回吗?诶像我们这个呢,你榨完汁,你肯定得把这个汁得给我倒出来啊,我调你的目的不就是为了你得给我榨几杯汁儿嘛,是吧,所以他就一定需要有返回值的。
32:14
哎,那这呢就体现为方法型参作为原材料进去,然后呢,诶方法体一顿操作,操作完以后呢,这个你把这个汁呢给我倒出来,这个呢就是有返回值的这个场景。有一些操作呢,可能就没有返回值了。比如说你看啊,咱们调的那个sort方法。哎,瑞里的是吧,所以呢,现在我调这个方法呢,我需要呢做一个排序,你想想我们这时我说呢,一定需要一个参数,为什么。对,你得告诉我给哪一个数组排序吧。是吧,你说in,我在你这个里边写明说我in的一个数组,给这个数组排序不完了吗。那你不就写死了吗?对吧,诶我每次调理方法你就只给他排序,那我要你有啥用。哎,我需要呢,我想给谁排,我就调你这个方法,所以说这块呢,我们这个要排序的数组是不确定的。
33:07
那因为这个不确定性,所以呢,我们只能通过行参去表现。你给谁排?那你传进来,所以这人就是刑犯了。啊,它的意义是吧,然后呢,我们调完这个方法之后,它是不是就对你传进来的这个数组就排好序了。还有,你还需要返回吗?你说诶排序排排好长啥样呢,你就接着调你这个数组看一下不就得了吗?是吧?诶所以呢,你就直接再去调你这个传进去的数组就行了,所以这个方法呢,就不需要返回了。哎,所以说我们这个,呃,有没有反物质类型,跟有没有行三的没关系啊。啊,这个大家去注意一下就行了,所以从这个角度来讲,这个方法的这个行参哈,其实呢,就体现为什么呀,就是我们在调这个方法体的时候。就是我们要做具体的操作的时候啊,对应的就是我们这个大括号里。啊,在这里边儿是吧,你要调用这个操作的时候呢,你看一下你在执行的过程当中啊,是否有一些不确定的数据。
34:04
如果要是有。哎,你就通过形参呢传进来。哎,如果要没有,因为我这块我都是确定的是吧,哎,那这块呢,你就不要去传了。OK啊,大家体会这个事儿后边呢,我们有好多练习啊,都是能够体现有行参没有行参。啊,这样的这种场景啊,好这个呢,就是我们提到了一个,诶,没有形态列表的这样的一个问题,好那么接下来啊,有形态列表。诶有擎天列表的话呢,这时候你就需要指明你具体的行参都有哪些了,那你说我一个就够,那就放一个,那一个不够我得放俩,那就你放俩就行。根据实际情况的需要,我们声明多个一个或多个参数啊。根据啊这个方法调用时啊需要的,哎,我这呢讲叫不确定的。啊,这个哎,变量的个数是吧,来决定这个行参的个数,包括呢,这个不确定的变量的类型和个数是吧。
35:03
来来确定你这个行参的这个类型和个数。OK啊行,这呢,就我们说的这个场景啊,这呢咱们也可以去举例啊,比如说。诶保存一下啊,我们看刚才呢,其实提到了这个有这是我们说的有型参的,其实有形参的好像挺多的哈。呃,比如这个banner research salt equals,诶这几个是不是全是。这个是吧,诶全都有这种不确定性,比如说诶我想呢,做一个二分查找啊,你找一下我们指定这个数组中的指定元素是在哪个位置,诶你不得调这个方法吗。哎,那你想找哪一个数组的哪一个元素呢?哎,你像这里边还体现了就是有多个参数了吗?CTRL f12啊boundary。诶b research,咱们就以这个int为例来说,哎,就调这个是吧,诶咱们在测试A瑞的时候呢,咱们调就这个方法啊,说你想找哪个数组当中的哪个元素在不在呢?哎,这不就得俩吗。哎,我们就掉的就是它了。哎,然后这块你还得告诉我说,诶这个是在哪个位置呢,是吧?哎,所以它呢,还是需要有返回值的啊行,这个我们再拉回来。
36:07
然后这个so方法刚才说了啊,这个equal的方法,哎,回过来啊,CTRL f12,哎,这个我们调一下,这个叫equals。哎,在这儿,所以呢,我们现在要想判断两个数组呢,是否相等,主要呢,指的是它内部的元素是不是一次相等,呃,你既然呢,你要比较是否相等,最起码得有两参数。放一个数组,再放一个,判断它俩是否相等。啊,因为有不确定性嘛,所以你得传起来,所以呢,需要性参。哎,这个呢,大家去体会一下啊好,那么这个说完之后呢,诶,相较于我们前面讲的这个反物质类型,这儿呢,同样呢,我们要去讲一下经验之谈。说呢,我们在声明方案的时候呢,到底要不要形态力表呢?神秘方法是。是否需要来形态列表呢?哎,我说呀,我可以把这个呢再粘过来是吧。呃,基本上这个套路呢,是一样的哈。
37:01
诶,首先根据你这个方法呢,具体的这个功能实现啊,来决定,你看你到底要不要是吧,诶就是具体问题具体分析啊,第二呢,就是题目要求他会说明说,诶我们第二列方法啊,你需要传入什么什么样的参数,或直接告诉你说需要声明什么样的参数。哎,那这就直接告诉你说需要这个行餐了。诶,OK,就是这样一个场景哈,哎,那么诶,再者我们就是书面上的这个经验了哈,其实实际在开发的时候呢,一般都会这这样子的哈,你比如说我这块呢,去写一个方法的时候。呃,这个方法的话呢,呃,按照我的累积的经验,哎,我会知道呢,我应该加个参数,加完之后呢,我下边我就写了,写的过程当中注意哈,既然这块你加了这个参数了,我们方法里边是不是一定会用它呀。你要不用它是不是就没必要定义了是吧?诶我里边一定会用啊,然后用的过程当中你发现,哎哟不行,我还需要一个参数。那回来再去补就可以了。哎,所以说大家这块呢,有时候你可能不一定啊,马上能想到说就是有几个。
38:01
啊,那缺了缺了就再补啊,也是可以的啊OK。好,这呢就是我们说的这个行参列表这样的一个问题啊,那么这个呢,我们暂时先不讲,至此的话呢,关于方法头我们就说完了。啊,这就说完了啊,诶,咱们刚开始在接触方法的时候呢,咱们的重心感觉是在这儿啊,你在写个方法这块呢,花了好多的精力,到底呢,呃,要不要反馈类型呢?要不要行参呢,几个行参呢?是吧,这块我们想了很多,实际上呢,真正我们上手以后啊,以后大家再写个方法的时候呢,这块写起来非常。哎,你的重心。全在这儿是吧。哎,你调这个方法,这个方法说是做什么作用的,其实全看方法体了,它才是帮你真正完成这个功能的核心代码。所以最后我们再写一下这个。诶这个,诶5.5,关于这个方法体。哎,方法体的问题啊,方法体呢,就是当我们调用一个方法时是吧,哎,真正执行的代码。
39:03
啊,也就体现了。哎,此方法的功能。诶,OK啊,这个方法写的话呢,可能这代码量就会大一些了,比如说你可能十几行啊,也可能啊,咱说的之前不是讲过啊,一个程序员看另外一个程序员这个代码的时候呢,发现写了900行代码是吧?哎,都写到方法体里了,显然呢不是一个好的。编码习惯是吧。呃,当然这块呢,你知道方法体呢,就是看你个人发挥了,每个人呢,理解不同,写法不同。啊,这个呢,就是体现高低水平就不一样了啊。好,这个呢,就是整个我们关于这个方法的一个整体结构的一个说明啊,需要大家能够去清楚。啊,需要清楚啊好,那么基于这个的话呢,我们这块呢,有几个注意点哈。注意点的话呢,呃,我们前面已经提到过了,说首先JA2中的方法呢,不能独立存在,柏须定义在这个类里边,在Java当中,我们这个类或者叫对象呢,是一等公民啊。这个你方法呢,必须得依托于这个类存在啊呃,然后第二个问题。
40:01
啊,这个我们直接看一下。啊,这里边儿有这个注意点啊。哎,这个是吧,所以呢,我们必须得先声明后使用方法,得先声明后使用,且方法必须啊定义在这个呃类的这个内部。啊,这样的一个场景啊,这个先声明后使用这块呢,哎,你看这个场景啊。比如说我这定了个eat,我这定了一个sleep啊。你说我能在这个里边掉sleep吗?在这儿。哎,这呢我得写,你看我调它的时候呢,这有参数,你得写个参数是吧。这个八你看诶可以。哎,为什么我会问这个问题呢?诶,我就怕有同学会想说,诶,这个代码不应该是一个整体的顺序结构吗?来说这块呢,不得是,呃,先你有的it,那这个时候sleep还没有呢,你在这里边怎么能够用后边才有的这个结构呢。可能会这样想是吧。
41:00
注意哈,就是这个时候的话呢,咱们看,呃,咱们以前讲说代码的话呢,我们执行分成三种结构。声音结构。啊,分支结构。循环结构是吧,这个呢,我们指的是在代码执行的过程当中满足这样的结构,其实呢,就相当于是在main方法里面。我们这个代码执行的时候呢,满足的结构。啊,那么问我这块写了以后呢,我这个代码执行了吗。没有。哎,你还没有执行啊,什么时候执行了,你在这块这样写的是吧,我person PE,你有一个person。哎,我牛,然后呢,我通过PE呢去调这个一的方法,此时呢,我们才去执行了。这两行代码是有先后顺序的。那我在调it的时候呢,你说我们这时候的这个sleep有了吗?人说诶我也不知道有没有,诶其实已经有了啊,这个就涉及到一个什么问题呢,就是这样的,我简单一说啊,咱们讲这个内存结构的时候呢,诶我稍微提了一下啊,有这个栈,有这个堆,其实还有一个叫方法区是吧。
42:02
对啊,咱们在呃,执行这一行代码的时候呢,我们站里边这个叫P1,然后这个我叫堆吧。啊,这个呢叫方法区哈,然后就简写了。啊好,然后呢,我们这个P呢,是在这个站里边指向了你堆空间,你扭的这个对象。哎,其实这块呢,你看我们已经声明了,是一个person类型,他也编辑器没报错,运行时候也不会报错。呃,那而且呢,他还知道你这个手地址里边,这地址里边呢,还包含了你这个类型啊,那这个person啊,它也是一个具体的结构了,是一个类结构啊,这个结构本身呢,它是放在这个方法区里的。也就是说呢,我们在去造对象之前,实际上呢,类是先加载的。啊,先有这个类的结构加载了,然后呢,我们呃采取造的对象啊,那么这个类在加载的时候呢,你里边的这些成员结构啊,方法呀等等,这都已经全都有了,也就是说此时的这个it也好,Sleep也好,都有了啊,然后呢,你造完这个对象了。
43:02
咱们拿二类对象是调一的方法,这些结构是不是全都有了?哎,所以说你调it的时候呢,里边再调sleep sleep也有啊,It也有,It要没有你调的话,不也报错吗。是吧,所以这都不报错,所以因为他们提前都已经加载过了。换句话说啊,这些哈,你就不要说这有先后顺序了,因为我们对于方法来讲不调用。不执行。我只是声明了,没掉吧。没必要的话呢,你就不用担心说这个有没有。我掉的时候只要你有就行。体会一下啊好,我在这呢写一句话啊。哎,这个呢,就我们说的这个,哎,Java中的方法。哎,不调用。不执行。啊,每调用一次。哎,就执行一次。哎,这样啊,诶所以回过来你看啊,我在这个位置呢,咱们,诶我把这个E的方法我给注释掉了,这个你去运行肯定不会有任何方法执行的。
44:00
就我指的下边我声明的这些啊,好,那么接着的话呢,我把这个E的方法打开,我调用E的方法来调一次执行一次。哎,这个呢,是本身里边写的这个,它然后呢,你又调这个sleep了啊sleep呢就也跟着执行了。哎,那我再去调一次一的方法,那他就再执行一次。这也就是我们说的这样的一个思路啊。好,那么通过刚才我这样的一个编写,大家也发现了,我们在一个方法当中可以调用另外一个方法。哎,咱们昨天呢,也提到了这个属性哈,属性呢,它的作用域呢,是在这个大括号里边的。啊,那就意味着我们这个属性呢,是不是也可以在方法内来调用啊。哎,我就都写到这个,嗯,It这里边吧,呃,在这块呢,你看我们去打印一下啊,我说这个name等于,哎这呢,我就加上一个内,哎以它为代表的,这不就是一个成现变量吗。哎,所以通过这个呢,我们出发呢,想说明的另外一个点啊,说这个叫诶方法内。
45:00
诶,可以调用本类中的。啊,其他方法或属性啊。诶,你看这块我还特意强调一下其他方法了,其实把这个其他去掉行不行呢。呃,那这里边儿呢,区别就在于能不能自已钓自己是吧。对,其实自己调自己呢是可以的,语法上没有任何问题,只不过呢,你要小心一点,可能会出事。是吧,哎,比如我这块我专门特意写的这个事儿啊,就给我交给in了。诶,我就写个,哎,Person里边的一个infer的这样一个方法是吧,诶我在这个方法里边,我自己教自己。这个idea呢挺好,给我们加了个标识啊,说明你形成这样一个环了是吧。自己撩自己,自己撩自己。诶,如果我这块真去掉了。哎,这个呢,是不是就出不来了。你看我们run一下啊,这个程序呢,就挂掉了。嗯,就挂掉了啊。这个挂掉的话呢,它对应的有一个信息哈。
46:04
目前为止,咱们只要看到这个红色的话呢,都是不正常的情况。以后呢,看到红色的就不用紧张了,像我们部署这个。环境的时候啊,比如说他们开的服务器环境的时候,它也会爆红,那个红呢,是正常的红啊。诶,找不到这个点了,这。诶,出来了。在这儿是吧,哎,它叫做站。溢出的一个error啊。战役出了。能理解这个错误信息不?你看啊,咱们说的这个这是战是吧,方法呢,是不是每调用一次都以一个战争的方式进来。调研完以后就出去是吧,进来我们调了音符的时候呢,进来了,进来以后呢,他还没出去呢,他又调了一个音符。他还没充电,又掉了个音符,它又掉了阴符,这个占空间的大小是有限的。是吧,对他有限的情况下呢,你这个,呃,上边这个出不去,他不得后进的先出去吗?你这个还没出去呢,又来了一个,然后给堆满了,堆满以后呢,不就溢出了吗。哎,这就我们说的内存溢出的一个例子啊,就这样。
47:02
啊,就是语法上能不能写,能写,而且以后呢,我们也会专门讲这个递归方法,但是呢,你这个递归啊,一定得有一个。极限是吧,比如你递归十次啊,100次啊都行,你不能无限递归,那再多的内存也经不住你耗啊。你再有钱也经不住你花的快呀,是吧?哎,所以这块呢,我们得小心一点啊。好哎,所以回过来呢,这块位置呢,呃,我加不加这个其他呀,其实都行,哎,关键就是大家呢能够诶理解啊。暂时的话呢,我们还没有讲递归,所以你先理解成有其他啊。呃,能调用本类中的方法或者是属性OK的啊,关键一个点要强调的是这个事儿啊,说方法内不能定义。方法。方法里面不能再定义方法了。回过来。还以这个因数为例。这里边儿呢,我们可以调用别的方法,你不能在这里边儿,你说我又想写一个方法。Avoid来个受。
48:01
诶,写完了。错了是吧?哎,就是方法里边注意不能定义方法啊。哎,方法内不能定义。哎,方法。哎,这个一定要小心,这个呢,把它诶注释掉啊。呃,那么有的同学呢,其实在写代码的时候呢,可能会出现这样的问题哈,一不小心写成的什么呀?呃,就以这个为例吧,因为这个代码少啊,这是我写的类,这个它的大括号是吧。诶,然后呢,正常来讲,我们现在讲类的时候呢,比如我在这儿我写个类呢,叫做A。写完了,实际上呢,目前这个程序当中,你看是不是有三个并列的嘞。哎,我注意说的叫并列的类啊呃,有的同学呢,可能一不小心呢,会把这个类呢写到这儿了。这个在这儿,这个在里边是吧,对这个类呢,其实叫内部类啊。这个咱们还没讲呢。但是从语法上来讲是可以的啊,就是类里边可以定义类啊,这个以后我们再说这种场景呢,咱们定义的并不多啊,呃,但是这个方法里边,注意是不能够定义方法的。
49:05
只能是在类里边去定义方法。回过来就是这个事儿。啊,记住它啊好,那么基本上我们关于方法这块的这个整体啊,包括特点啊,就说的就差不多了啊,诶然后最后呢,咱们稍微的关于这个瑞刺呢,再唠叨两句啊,刚才没有详细的去说这个事儿啊,这个瑞刺呢,我们当时是在哪块去用它来着。啥时候我们用的它。对,有返回值的时候是吧,你看像这个方法呢,没有返回值,我们也没有用过啊,哎,当这个方法调用完的时候呢,说你得给我返回一个值。怎么体现这个返回?我们就必须在方法内使用return。来来表示呢,就是你得有一个返回的结果。啊,这就我们这个return的一个作用啊,那其实详细来讲呢,这个return啊,它的作用啊,其实有两种啊,这个我们直接从课件这块我来拿就行啊。哎,把它呢,CTRLC。
50:03
有两种作用啊,首先看第一个啊,说这个return呢,它的第一个作用呢,就结束一个方法。也就是说,当我们执行到return的时候呢,这个方法就结束了。第二个作用,结束一个方法的同时,可以返回数据给方法的调用者。啊,就是你谁调的这个方法啊,这就叫调用者了。哎,这两个体会一下。这两个呢,其实是可以独立的去。哎,来验证的啊,比如说第一个呢,就要结束一个方法,这种情况可能我们见的少,大家可能见的比较多的是这个是吧。咱先说这个吧,接收一个方法,同时呢,返回数据给方法调用者,那这个咱们刚才演示的这都是这样的场景啊,当我们第二列方法的时候呢,最后你返回一个结果,这个结果呢,是满足这个类型的,这个呢也同样的道理。啊,那也就是说,诶,当我们要是有反应类型的话,方法如果有反应类型是里边一定有return。这个到目前为止都是对的。啊,以后呢,我们再说那个泡异常的事儿啊。
51:03
哎,我这时候我这我这样说一下吧。在这里边儿呢,我写一句话啊,就说呃,方法声明中是吧,如果有返回值类型。返回值啊类型,那则方法内呢,需要呢,搭配return使用对吧。呃,这个的话呢,我就不加必须了哈。必须搭配这停使用其实基本上是必须的。啊,那极特别的点呢,就是有异常的这个情况,但是咱们还没有暂时没有接触过异常,所以这块呢,大家就理解成是必须的,只要有反射类型就一定要有return OK。这呢就是我们说的这个事儿,那其实呢,呃,反过来说哈,如果这个方法没有反复阵型。那有吗?有点有点烧脑了是吧。你看这个这个这是这这个像高中数学讲过,叫什么必要条件,什么充分条件啥的是吧,经常就整懵了就得啊。
52:06
嗯,对,再再再说一遍啊,你看啊有点有点绕,你看这时候如果有反馈类型了,我们说那里边一定要有瑞是吧,如果要是没反馈类型。推推不出来说一定没有return是吧,哎,其实这块呢,确实如此啊,这个就体现了第一个作用就是如果要是VO的话呢,其实根据你的需要呢,是可以有return的,它主要体现的就是第一个作用了,来我举个例子啊。只是说这种情况呢,其实比较少啊,比如说这个呢,我叫print number哈,这我写一个呢,对型的叫target。哎,他给点number吧。哎,我一调这个方法呢,你在这里边儿就从一开始遍历到这个数。哎,那我就写个for了啊in I等于E,然后I呢小于这个叫target number,然后I加加是吧。哎,这里边儿我们就简单的做一个输出了啊,就输入这个I就可以了,这一看非常简单啊。哎,那我们上面如果去打印呃,去调的话呢,这个我就不调了,其实很简单,呃关键就是在这个位置,你看我加了个依附语句哈,说呢一旦这个I呢,我说呢就是诶当等于四。
53:07
啊,一旦这个时候呢,我就直接就停了。首先在这个语法上,你看它是OK的啊,是没问题的,哎,那这个什么意思啊,就是我这呢假设啊,我传的这个值呢,是个十啊。那就本来呢是从一到十呢,作为一个,哎还是取不到十,还个能取到吧,从一到十呢,做一个自然数的一个便历了,哎,当然你在打印到四的时候呢,我直接就把当前这个方法注意啊给结束了。那实际的打印结果呢,就是123。四也没有是吧。哎,那么此时的话呢,你发现呢,这是wide,这也可以使用return,它呢就体现了咱们刚才说的作用一,作用一啊,就是用于结束。方法。啊,因为呢,你这块没有法律类型,所以我return后面就不需要搭配任何的数据了。那你要是有反应质类型呢?我就必须要搭配上一个变量或常量了。
54:00
哎,这个呢就不需要了,所以它的作用呢,仅是用于结束方法。啊,那么这时候呢,你看正好我也写到for循环了,咱们就多说一句了,以前咱们讲过说诶结束一个循环结构有几种情况呢。嗯,这个不满足是一种。是一种是吧,哎,Return算不算呢。其实算也好,不算也好都行啊,这个就是看你怎么讲了哈,呃,要是我来说的话呢,严格来讲其实不算哈。因为它不是用来结束循环的。对,它是用来接触方法的,你的循环结构都写在方法里了,那当然也会理解成接触它了,其实它跟这个根本都没鸟你是吧?直接就把这个给整停了是吧,你是顺带着你就就结束了是吧。所以说呢,专门要是接触它呢,就是循环条件不满足,或者又break了。哎,就这两种情况啊,那到时候有一点跟也好或者肯定也好是一样的,就是return后边。
55:00
就不要有输入语句了是吧。哎,对,你比如这块我们写个梳理句啊,这个还清晰的记得迪丽热巴要约我是吧啊。要要约约我干啥呢?吃吃个饭吧,就。这个事儿执行不到是吧,你看编译这块就报错了啊,说这个是unreachable的statement啊,哎,不可到达的语句。这个注意一下啊,说这个A后。呃,声明啊,执行语句啊,这个呢,也就是我们提到的,哎,关于return啊,它使用上的一个注意点。哎,后边呢,不能有具体的这个执行语句啊。啊,一般的大家也不会忽略这个事儿的啊。哎,这块呢,说明一下就行了。好,那么至此的话呢,关于方法的这些细节,咱们就说完了。其实感觉还是挺多的啊,但是你细节捋一捋的话呢,只要基本大家能听得懂,你也不用刻意的去记哈,接下来做的事就是做练习。
56:00
就行,通过练习啊,去回味这里边儿的一些细节就可以了。
我来说两句