00:00
大家好,我是海波老师,咱们继续给大家讲解Java面向对象的相关语法,前面讲到了方法的返回值,表示方法的返回结果啊,对其他对象的影响,那么也就是说方法的内部的结果呀,对外部是有影响的,对吗?那咱们接下来讲一下外部的数据对我们方法内部的影响和控制,所以我们这里来拷贝一下,我们写上一个叫做零七。然后呢,我们在后面呢,我们加一个下划线,我们叫per,点击OK。点击完成了以后,把我们下面的改成我们的零七,好,诶把这个下面的都给它去掉。去掉了以后呢,把上面的代码呢,也全都给它去掉就可以了。把这个改成我们的七啊,把这个改成下划线,咱们叫per,好写完以后呢,咱们来实现一个功能吧,什么功能呢,咱们叫say hello啊,诶,所以呢,我写上一个咱们叫VO,就叫say hello就可以了。好了,写完了以后,我这里打印一下比较简单,咱们就直接写上叫hello就可以了啊,那么我们这里呢,创建我们的U啊来U它等于new u行了,写完之后呢,U点我们的c hello,诶这样的话就可以了啊运行。
01:08
运行以后看结果,这个应该没有任何的问题,对吧?诶,Hello,这就可以啊,但是大家想一想,大马路上你碰见一个人,你say hello,你碰见一个人谁hello的话,本身挺阳光的一件事情,但是在别人眼里会不会感觉你神经病呢?所以咱们一般人呢,在生活中谁还啊,都是面对自己熟悉的人或者认识的人,对吗?你连对方都不认识,你上来就say hello,是不是就显得很奇怪了?不光你奇怪,对方是不是也很懵啊,怎么这个人我不认识,还跟我打招呼呢?哎,他会很懵。啊,还有呢,就即使是我认识呀,如果我叫不上对方的名字的话,是不是一般也不会去say hello啊,同学们想想主要是怕尴尬吧,哎,所以啊,我们一般都是要知道对方的名字才会c hello,这个没问题吧,同学们好,那么把刚才描述的这个场景啊,带入到咱们程序当中来,我们这里呢,就需要从外部呢,获取到对方的名字,在这个方法中去完成c hello的操作,对吧?所以啊,这就是我们外部数据控制方法内部实现的一种操作,这个操作在Java中啊,它其实依靠的是一个叫参数的语法实现的,来我们说一下。
02:16
使用外部数据来控制方法内部实现的操作,它使用的是参数语法实现的。也叫方法参数,它的使用呢,有点类似于咱们之前讲的那个变量啊,只不过它声明的位置它不太一样,咱们把它的语法呢,咱们来说一下。这个的语法非常简单,咱们的方法名啊,咱们后面会有个小括号,这个小括号里面就传参数就可以了,咱们叫参数类型,然后呢叫参数名称,大家还记得吧,咱们之前声明变量的时候,不就是有变量类型和变量名称吗?只不过我们这里呢,叫参数类型,我们叫参数名称,你这么写就可以了,好了,把咱们前面的代码呢,我改一下,我就在这个小括号里面,我写上一个叫string,诶,我们叫做类型,再来一个名称,我们叫name。
03:09
你say hello,你得知道对方的名称吧,好,你把这个名称呢,给我加到后面去,我用字符串的一个加号的拼接功能,把name呢给我拼进去,那么这样的话,你从外部呢,给我传个名称,我现在就可以使用了,不过你写完就会发现咱们执行的这个地方呀,出现了错误,为什么?因为你明确的告诉Java虚拟机,你的方法需要从外部传递数据到方法的内部,对不对,但是你没传呢,你可不就发生错误了吗?所以啊,这里我们就需要准备数据,把这个数据给它传进去,我这里呢,为了简单起见,我就写上一个它,我们叫做name,他等于张三。啥意思啊,你碰见一个张三的人呢,所以把名字给他传进去,传进去以后这就叫传禅,记住同学们,我们这里叫传递参数。传递参数。那么你把这个参数呢,你传给他以后,我们这个地方就自动的接收到了,你还怪的参数,然后呢,我在里面就可以使用这个参数了,所以我们这里写上它叫使用参数,你会发现语法上还是比较简单的,但是我们需要再考虑一个问题,就是要是外部的多个数据对内部有影响怎么办?
04:20
其实啊,咱们的语法中也允许有多个参数的,同学们来咱们说一下,咱们语法当中,我们如果有多个参数的话,我们写上叫参数类型一,叫参数名称一后呢,多个参数呢,我们可以用逗号给它隔开,然后呢,我们后面就拷贝,拷贝以后再写一遍就可以了,这个咱们叫类型二,这个咱们叫参数名称二,如果再有的话,你再加个逗号,以此类推,你这么写就行了,所以啊,咱们小括号里面可以放置多个参数,这个有的时候啊,我们就把这个小括号里面包含的这些东西啊,咱们称之为叫参数列表,咱们这里说一下,有一个叫参数列表的概念,其实就是小括号以及它里面的多个参数的一次。好了,这里呢,我们就来演示一下,咱们再加一个逗号,我们叫做int,咱们叫A。
05:05
你这么写完了以后,同学们,我现在有两个参数了,就意味着我需要从外面传两个数据进来,但是你会发现我这只传了一个数据就肯定不对了,所以怎么办?我来写上int a,它等于30,写完了以后,你把这个A呢给我传过来,用逗号隔开,诶放过来,这样的话我的30呢就传递到了这个位置,然后呢,我们在这里写上它,诶我们叫逗号,我们再加上H就可以了,诶这样的话我们当前去执行一下,看结果运行。运行以后,我们的多个参数就打印出来了,你会发现张三和三四没有任何的问题,不过同学们,一旦这个参数多了,咱们需要注意的地方可以就多了,这里我们说一下。当我们的方法它传递多个参数时啊,需要注意。那么需要注意什么呢?我们的第一个。就是参数的个数,它是需要匹配的。
06:01
什么意思啊,同学们,我刚才这个地方不是传了两个参数吗?同学们,如果我传两个参数的话,但是你的这个地方如果只给我了一个,那不行,为什么不行,因为不够嘛,所以我的个数是需要匹配的,哎,老师呀,那我再给你多传一个行不行的,你不是俩吗?再给你传一个,我在这里直接写上它啊,给他一个处孤类型的,你会发现不对,不对的原因还是因为我们限定了我的个数,然后你多传了一个,那是不允许的,因为这个给谁不知道对吧?所以我们这里是不能这么去做的,这个咱们需要明确一下,这是我们第一个需要注意的,第二个呢,就是我的参数的类型,它需要匹配。什么叫参数的类型需要匹配呢?很简单,大家看一下,你这个地方叫string,诶,我传一个string没问题,你在这个地方传一个整形叫int,我这里也传了个int没问题,但是如果你写上一个它,咱们叫string叫做edge string它等于30,哎,老师呀,我们这写上一个这个行不行,你把它你放过来。
07:02
放过来之后,你会发现这是不允许的,不允许的原因很简单,个数相同,诶,我们俩的个数是一样的,但是我们的类型你不匹配了,我们的要求是int,你给我个字符串,那怎么可以呢?不行,所以说你的这个地方需要保证它的类型是相同的。好了,我们接下来再给大家说第三个需要注意的就是顺序。那么这个顺序是什么意思呢?还是那句话,大家看一下,我们有一个字符串叫name,有一个整形叫age,诶我这么写是没有问题的,但是如果你这么写呢,我写上一个age,我们叫做。大家会发现你当前就不对的,诶老师为什么不对呀,你让我传个字符串,让我传个整形,我不传了吗?我传了一个整形,传了个字符串没问题啊,记住问题在于顺序是不对的,因为我们要求第一个必须是字符串,第二个必须是int,可是你给了我一个int,给了我一个字符串,它不匹配,所以啊,咱们参数列表当中需要注意它里面的个数类型和顺序都是非常重要的,尤其是当有多个参数的时候,这个大家需要注意一下,这个说完了以后,我们再给大家说一种特殊情况。
08:10
当我们的参数的个数它不确定,但是呢,我们的类型相同时,啊相同时我们可以采用啊叫特殊的参数语法声明。我们称之为叫可变参数。什么意思啊,同学们来咱们演示一下,把这个地方呢,我写上一个叫word,我叫test OK,然后呢,我们打印把什么呢,我在这里呢,写上一个string,然后呢给个name,诶然后呢,把这个名称打印出来,好,我这么去写,写完了以后,我回过头来我们这里把这个注掉。做掉以后呢,把这个U我拿过来,拿过来以后点一下我们就叫test,我传一个叫张三就可以了,这个就是我的一个字符串,我现在执行一下。执行以后,它打印的就是我们的张三,没有任何的问题,但是我说过了,它的个数不确定啊,可能传两个参数呢,所以我再来写上一个,写上一个叫叫做NAME1好了,然后呢,那我这报错了呀,所以我再写上一个我们的李四行了。
09:07
好,写完以后再运行,诶不对,我这忘了好像忘了加他了,所以呢,我们来一个我们写上逗号,我们再来一个叫做NAME1对吧,好写完了之后呢,我运行一下看结果你会发现我们当前的张三李四没问题,诶那我又来个王五怎么办?我再来个赵六怎么办?我再来个田七怎么办?我的这个名称不确定啊。如果你不确定的话,你的每一个都这么改,不就显得有点麻烦了吗?所以我们就可以采用这个叫可变参数,这个可变参数的语法稍微的特别一些,它的这个语法是这样的,叫参数类型,点点点后面跟着参数名称,同学们有没有发现是这样的,因为啊,它的个数不确定,但是类型相同啊,所以就可以在这个类型的后面加个点点点表示的是省略的意思,所以啊,同学们,我们这里呢,就可以把这个去掉了。你把它去掉了以后,同学们,我这里呢,给它一个叫点点点就行了,写完了以后把这个去掉,同学们,这就是一种特殊的参数语法,那么这个参数怎么理解呢?很简单,就是你想传什么就传什么,你想传几个就传几个,诶老师我不能明白,好,咱们来看看同学们,我现在干嘛呢?我一个都不传。
10:22
我不说了吗?我们的个数不确定啊,那好,我一个都不穿,哎,没问题,语法是允许的,而且呢,那我传一个呢,也没问题,我们的张三一个也没问题,我再传一个呢,我们写他咱们逗号,我们叫李四,哎,我再传一个吧,咱们叫王五吧。写完了以后你会发现语法上都是没有问题的,所以啊,这是一种我们特殊的参数类型,但是同学们有一个地方需要注意,如果你当前的参数列表当中还有别的参数的话怎么办?比方说我写个逗号。然后呢,写上一个叫in age,你这么写,你这么写就会发现不允许。为什么不允许啊,因为点点点是不确定,那我怎么知道你的这个值算不算不确定呢?我就不知道了,所以啊,在我们这种情况下,我们需要把可变参数放置在最后,这是一种特殊情况,给大家说一下来。
11:15
如果我们的参数中还包含。其他含义的参数,那么可变参数应该声明在最后。好了啊,你需要把这个可变参数放到后面才是对的,所以把它放到前面来,放到前面来以后,你会发现把这个呢给它去掉,哎去掉去掉以后,那我前面就不对了呀,为什么呢,少传了个参数啊,所以我们给个30,然后呢,在这边我们给个30,然后呢,在这边我们也给他个30,你会发现如果我们这么写也是没有问题的。所以啊,可变参数大家稍微注意一下就可以了啊,好了,我们把这个方法的参数就给大家讲到这里。
我来说两句