00:00
大家好,我是海波老师,我们继续来讲加va面向对象的语法,我们这里拷贝,然后呢,我改成啊咱们的腰式,咱们点击OK,点击完成以后,把下面的这个注释呢,咱们全给它去掉,那么咱们写上一个类啊,咱们这个类呢,叫做class,我们的U,咱们叫14,好了,写完了以后呢,我们写上一个登录的方法,咱们叫做log in,然后呢,写上括号,在这里面我们写上它,诶咱们就写上它,咱们叫做登录就可以了,那么大家都知道啊,在生活当中啊,咱们登录一些网站,登录的方式会有很多种,比如账号密码登录啊,或者手机验证码登录,或者微信支付宝扫码登录,对不对,那咱们这个用户的登录就显得呀,过于简单了,对吗?那我增加几个不就行了吗?我这里拷贝,拷贝完成以后来复制,复制三个,那我这里写上它,我们就叫做账号。密码登录,那我下面这个呢,我就叫手机验证码了,手机验证码登录这个呢,就是微信啊,然后呢,支付宝登录这不就可以了吗?啊但是你会发现我们增加了以后,咱们程序就报错了,诶他为什么呢?因为啊咱们的加上虚拟机认为呢,我们当前的方法呢,是完全一样的,你的打印的内容不一样,但是你的这个方法的声明是完全一样的,所以一个内容相同方法是不允许重复声明的,所以呢,这里我们说一下一个内容。
01:20
不能重复声明相同的方法。其实属性也是一样的,也不能啊声明相同的属性。就是这个意思啊,哎,老师,那怎么办呀,那我写个一,我写个二,我写个三,这样的话,诶不就不重复了吗?名称上不一样,那不就不重复吗?告诉大家不是这样的,为什么?因为我刚才说过了,我们的三个功能啊,它都叫登录,所以我们建名之意,那我这个地方就应该叫log in,对不对?也就是说从名称的角度来讲,我们是应该统一的。一样的功能嘛,你为什么给我起三个不同的名字呢,对不对,所以这是没有道理的,只不过呢,我们登录的方式不一样,那么你不应该通过名称上来区分,如果你通过名称上来区分的话,那这个就感觉啊不太好理解,对不对?所以贱名之意,贱名之意我就应该通过名称来理解它的含义,不就是这样吗?哎,老师,那我当前应该怎么办呢?其实啊,我们当前啊就可以什么呢?通过我们的方法的参数来做区分,为什么?因为咱们方法呀,不仅仅是名称啊,它还有参数,我们讲过参数也属于方法声明的一部分,所以咱们这里说一下。
02:33
这里相同的方法,它指的是方法名相同,方法名还有参数列表相同。你这个就叫相同的方法,那么在我们一个类中是不允许出现的,哎,老师呀,那我这个avoid呢,比方说我的log in,我们有个wide这个log来把它去掉,下面的这个我们把它去掉,我写上一个叫做string。同学们会发现我当前写的这个呢,我们来我们写上一个,那你会发现它照样是不对的,这就说明我们相同的方法呢,和这个返回值类型是无关的,所以我写上。
03:10
和返回值类型无关,好了,同学们,我们需要注意这一点啊,那好了,我们现在怎么区分呢?我们这里还是给它改回去叫做word,但是呢,我的参数就发生变化了,比方说你叫账号密码吧,那行,我现在就写成一个叫string,我就叫account,咱们叫账号,再来一个叫string,我们叫password,你这样写的话,那这样的话就跟我们这个方法就不一样了,诶老师啊,那下面是手机验证码,来吧,我给他写上一个什么呢?我们的手机号码啊,来,我们写上它,我们叫做手机号码,对吧,我们写个tell就可以了。因为这是一个Y呀,所以这就不需要了,好去掉,去掉以后把这个三我也去掉,好去掉了以后同学们我们把这写成它,我们就叫微信号,我们这么写就可以了,现在呢,我们的这个方法名是相同的,但是我们的参数列表不相同,对吧?我们之前讲过什么叫参数列表啊,就是说我们小括号里面包含了这么多的参数,就叫参数列表了,它可能一个都没有,也可能有多个,对不对,而且还有可能类型相同,也有可能类型不同,还有可能顺序不一样,这个咱们前面是不是都讲过呀,还恰恰因为参数列表不一样,所以说你在传值的时候,是不是需要考虑它的类型顺序和它的个数啊,所以啊,他说了,我们参数列表相同和返回值类型无关,这样的话,我们就属于什么呢?我们叫相同的方法,那好我们这里说一下来。
04:33
如果方法名相同,但是参数列表不相同,这个参数列表它说的就是我们的个数,还有顺序以及我们的类型。如果这个不相同的话,那么我们会认为是不同的方法,只不过名称一样。那么好,这里说一下,这个操作在我们Java中称之为叫方法的重载。
05:03
方法名一样,但是参数列表不一样,这就意味着它的使用场景是不一样的,这个呢,我们是需要给大家稍微的说一下的,好了,那这里呢,我们就需要给大家去演示演示了,首先我们就来写上它,我们叫U14A,然后呢写上它等于new,然后U14行写完以后U点我的log in同学们有三个方法名字都是一样,但参数列表不一样,第一个电话号码我写个11111好了,写完以后再来我们的第二个呢,传一个字符串,诶我们叫微信号,我写上一个123123就可以了,接下来我们再传递账号密码,我就写上叫张三,然后密码呢就是123 123,诶你会发现不会出现任何的错误,现在我运行一下,运行以后,我们首先我们第一个就是我的手机验证码登录,第二个就是微信支付宝登录,第三个就是账号密码登录,对不对,所以啊这种方式没有任何的问题。诶,好了,说到这个方法的重载了,我们还得说一下,我们之前所学的构造方法也有这个概念,所以咱们再补充一下。
06:03
构造方法,它也存在方法的重载。诶,什么意思啊,我们的构造方法不就说了吗?它也是方法,只不过名字跟我们的类名一样,没有返回值,诶我们恰恰重载是不用看返回值类型的呀,所以我们这里需要注意一下,我们写上它叫U的14,写个括号,诶好了,写个括号以后,这就是一个无参的构造方法,对不对?在这里我就写上,然后呢,我们就叫做U的A点点点就可以了,那我写完了以后,你再运行,你会发现我们当前的构造方法可以执行,没有任何的问题,但是呢,构造方法它也有重载呀,它如果有重载的话,这就意味着我们的名称一样,但是参数列表不能一样吧,你看如果你直接这么写,是不是还报错了,我在这里面写上它,我们叫做stream,叫做name,你这么写就不报错了吧,然后呢,我们在这个地方写上它,我们叫做name就行了。
07:00
诶,老师呀,那你写完了以后,你有两个构造方法,那我这个地方到底用的是哪一个呢?很简单,因为你这个小括号其实就是我的参数列表吗?你没有传任何的参数,那你调的不就是它吗?所以你会发现你现在执行跟刚才没有任何的区别,我们这里呢,还是咱们的UR能不能明白同学们,但是如果你想调用这个构造方法的话,你就需要传递参数了,比方说我写上张三,你写上张三以后,那么张三就会传递到咱们这个位置,然后你再运行,运行以后看结果,你会发现我们当前的张三不就出来了吗?这就是我们Java中方法的重载,好了,同学们,方法的重载我们就演示到这里。
我来说两句