00:00
呃,好了,同学们,咱们继续往下看啊,往下看上节课呢,咱们说了一个叫做方法这个重载这个,呃,不使用重载有什么这个缺点,然后使用重载呢,咱们有什么样的优点是不是?哎在这里简单跟大家说了一下,就是说我们实际上在Java语言当中啊,我们区分一个类当中的这个方法,它是怎么区分的呢?哎,它是通过这个方法的名字进行区分,但如果说方法名字如果一样的话,它可以通过形式参数列表进行区分啊。通过行参是可以区分开的,是没有任何问题的啊,没有任何问题的。那么这个方法重载它有什么样的好处呢?对吧,它的好处其实第一代码美观对吧?啊,第二个呢,就是呢,就是我们啊这个功能相似的啊,尽量呢,让我们的方法名怎么着啊一样,这样的话我们记忆起来也很方便,将来调用这个方法的时候,我们只要传不同类型的参数就可以了,对吧?哎,传不同类型的参数就可以了啊是这样的。
01:01
我不知道大家这个理解不理解啊,理解不理解,来我们继续再往下看。应该是问题不大啊,应该是问题不大,接着再往下啊。嗯。我们看一看真正的讲讲这个方法,这个重载机制好吧,叫overload test03。嗯。什么时候啊?会发生?什么时候代码会发生方法重载?什么时候需要考虑使用方法重载?方法重载。英语单词叫overload。啊overload,我们在这里可能需要考虑两个问题,就什么时候需要考虑使用方法重载,什么时候代码会发生方法重载,就是代码怎么写就会发生方法重载呢?那这里呢,我总结是这样,什么时候需要考虑使用方法重载呢?
02:16
就是在同一个类当中啊,如果如果功能一和功能二。哎,功能一和功能二,它们的功能是相似的。啊,功能一共多少,它们的什么,它们的功能啊是相似的。那么可以考虑。考虑将他们的方法名。啊,一致。可以考虑将他们的发放名一致。啊,这样代码既美观又便于后期的。代码编写,代码编写容易记,容易记忆。
03:04
方便使用啊,方便使用就是说这个不能随便用,方法重载不能随便用,两个功能不相似,如果把方法名定义的一样,会出什么问题。注意啊,方法重载overload不能随便使用。如果两个功能。压根儿不相干。相似。不相似啊,根本没关系。此时啊,两个方法使用重载机制的话。会导致。编码。更麻烦。为什么这么说呀?
04:01
假如说你有一个方法是求和的。啊叫萨完事之后呢,你还有一个方法是计算什么乘积的。你还有一个什么呀,是计算商的。啊,然后你还有一个是计算减法的啊,你为了干啥呀,为了让这个程序员呢,就是轻松嘛,对不对,哎,你把乘积也叫sum,你把商也叫sum,你把减法也叫sum,就你整个这个项目当中,整个你这个程序当中有100个方法,100个方法都叫sum,我觉得这种方式就是滥用啊,滥用就是方法重载是好,对吧,但是呢,你适可而止。适可而止,就是功能相似的话,哎,你可以考虑把这个方法面定义的一样,如果功能是不一样的,你坚决方法名是不能一样的,这个方法名绝对不能一样。而且还有贱名之意,而且还有建明之意,写了一个单词就知道,哎,一看就是完成什么功能的啊,你不能说你把这个东西啊全都干啥呀啊,全都定义成啊,你说啊,为了方便啊,以后都要萨了啊,妥了。
05:05
那你完了啊,完了那肯定不能这样啊,所以这块呢要注意一下,方法重载overload不能随便使用,如果两个功能压根不相干,不相似,根本没关系,此时两个方法使用方法重载的话,哎,使用这个重载机制的话,会导致代码这个编码更麻烦啊。嗯,无法进行方法功能的区分,是这样的啊,行,这是第一点,各位啊,什么时候需要考虑使用方法重载机制,那么代码怎么编写的时候会发生方法重载呢?哎,条件一在同一个类当中啊,条件二是什么。条件二是方法名相同啊,条件三是什么?是参数列表不同啊,在同一个类当中,方法名相同,参数列表不同,我们就认为两个,哎,只要啊,只要满足以上三个,只要同时啊,满足以上三个条件。
06:10
那么我们可以认定啊,认定方法和方法之间发生了重载机制啊,发生了重载机制。发射重载机制啊,就是说满足这三个条件,那有同学就问我老师在同一个类里边,我能理解。方法相同,我也能理解参数里边不同是怎么理解,记住是这样的啊。参数的个数不同算不同,参数的类型不同,算不同参数的个数呃,参数的个数不同,算不同,类型不同,顺序不同。也算不同,注意啊,就是你参数的个数不一样。啊,就算是不同啊,参数的类型不一样也算不同,然后参数的顺序不同也算不同啊,顺序不同也算不同,我给大家举个例子好吧,举个例子啊,方法重载。
07:09
这个比较重要的一种机制啊,Overload test03方法重载呢,会给我们的编程带来很便捷的一个操作啊,很便捷的操作,所以呢,我们要注意啊,要注意。哎呀,我也不用写这个闷方法,写上也行啊,我在这里写写方法,各位看好了啊,Public static VO方法。然后呢,Public static VO me方法,然后呢,我们在这一块怎么着呢?哎,呃,写个TA,这两个方面有没有共同重载啊。有没有共同承载?System out,点打印输出。M一无参数的执行了对无参数的。执行对吧,这个是M1有一个int参数执行。
08:06
对吧,M1有一个int参数执行是不是,哎,那么现在我们在这块,如果说我调M1方法这样去调,然后调M1方法里边根上是一个100,那大家想这个是不是就。就是发生重载了,首先他们在不在同一个类当中啊。在吧,诶方法名一样不一样吧,参数这边一样吗?不一样属于什么不一样。参数的个数不一样吧,哎,参数的个数不一样啊。就是这个方法的参数个数啊,和上面的方法的参数个数不同,个数不同,其实你本着一个原则就行,能让Java编译器区分开就行啊,你能让Java编译器区分开两个方法就行。就是注意啊,就是不管代码怎么写,最终一定要。
09:07
一定能让谁呢?一定能让Java编译器很好的区分开这两个方法。啊,区分开这两个方法啊,区分开啊,这就属于参数不一样,那现在我们这个有没有重载有啊。对吧,那如果说我这写个class my class。啊,My class,然后你在my class里边也写了一个方法,你说你在这写的public static y m1,然后M1呢是类型X,类型Y,那接下来你说这个M1方法和这两个M1方法有没有重载啊,没有啊,因为他们不在同一个类里边,我们说重载只是说在同一个类当中啊。注意不在什么呀,不在同一个类当中,不能叫做方法重载,因为压根呢,你这个方法啊,和我这个方法就没关系,为什么?因为我们大家都知道,调用方法实际上是离不开类名点的,对不对,那我这个类名下去调你这个方法,我这个类名下去调你这个方法对不对?哎,那完全通过这个类名就可以区分开了,是不是,所以这个呢,我们就不叫做重载了啊,就不叫做重载了,这不叫方法重载,记住啊,但如果说这个和这个在同一个类当中方法名相同,如果参数列表不同的话,我们就叫做方法重载啊来,我们编译一下,运行一下,看一看Java c呢去编译overload test03.java然后Java去运行overload t03层。
10:35
M一无参数,MM1有一个参数int执行对吧?诶都可以执行,那么如果说现在呢,我在这里带来一个public static VO m2方法,然后M2方法现在是这样的,比如说类型的X和double类型的Y,接下来我在这呢啥呢?Public static我又写了啊,我说public static VO m2方法,然后呢,写一个double类型的Y啊,还有int类型的X。
11:01
那这两个有没有各种重载呀,system.out.print打印输出啊输出什么呢?输出这个吧,比如这个吧,行吧,哎,拿过来,然后呢,接下来在这呢,system.out.line打印输出是吧?哎,我输入什么呢?双引号,我把这个M2拿过来,哎,放到这儿,那么像这种情况下的是方法名相同是吧,但是参数列表不同是因为顺序不一样,一个是int,一个是double,一个是double,一个是int啊就是参数的顺序不同啊,也算不同,也算不同啊这个Java虚拟机是可以Java编辑器是可以区分开的,那我来调一下这个方法和这个方法是不是来M2,那么这块呢,我跟一个十,然后跟一个什么呀?哎,3.14,然后接下来呢,我M2在这怎么着,我写个3.14,然后后边跟一个十。那我们来看这个是不是调用不调用到不同的方法,好吧,来Java c呢,去编译Java去运行哈,大家看先调的是这个,再调这个对吧?那这样的话其实也是构成了方法重载方法名,如果是一样参数里边是不一样的,对不对,哎,参数不一样,那么再往下呢,我们再来一个啊,你比如说除了这个参数的一个个数之外,还有这个类,诶还有这个顺序之外还有个类型,对不对,哎,类型,那么这个时候呢,我们再来public static VO的M3方法,M3方法这个类型是int类型,然后接下来我再来一个public study,一个M3方法,这M3法来一个double类型的,哎,Double类型的D啊,那么这一块我system.out点打印输出啊,我输出什么呢?我输出这个I'M3,把这个复制一下,拿过来放到这啊,然后呢,把这个复制一下,放到这个位置上。
12:42
放到这儿啊,然后把这个呢复制一下好吧,哎,我们把这个给它替换掉,那这个时候呢,我们的类型就是属于不一样了,对吧,这属于什么呀,叫参数的类型不同,因为你一个是int,一个是double,我能不能区分开,可以区分开来,我们在这儿呢,调一下M3方法来传一个100,那接下来我们M3方法再传一个什么呀,比如3.14对吧,我们来看看是调的不同的方法来Java c呢,去编译一下Java的运行,好大家看。
13:09
M3是不是调这个,然后调这个编译器,编译没问题,运行也没问题,这说明我们Java它可以很好的定位到,到底调你这个方法还是调你这个方法,还是调你这个方法,首先第一个就是根据方法名进行区分,方法名如果是M1的话,它就定位到这个方法上,以及这个方法呢,那到底是这个方法还是下面这个方法呢?那取决于后面的这个参数啊,取决于后面这个参数,那我说了,参数的个数不同算不同,参数的类型不同算不同,参数的顺序不同也算不同,只要有一个不同结果就是不同啊。哎,什么时候发生代码呢?呃,什么时候代码会发生方法重载这种机制呢?哎,发生重载的前提条件,第一个条件是在同一个类体当中,诶,这是第一,第二个呢,是方法名得一样啊,第三个呢,就是参数列表不同,参数列表不同算不同啊,参数列表不同,哎,其中有包括个数。
14:09
不同是不同类型,不同式不同,顺序不同也是不同啊,同时满足以上三个条件才算发生方法重载,方法重载的好处是什么呀?哎,就是一代码长得漂亮美观是吧?哎,然后方便我们程序员的调用啊,但是我说了,你不能把所有的方法都定义成同一个方法名,你说这一个类当中有100个方法,我把100个方法方法名都一样啊,那这样的话我觉得不行,为什么?因为有些方法的功能不相似。大前提条件,你要注意啊,功能相似的情况下,我们才会考虑让这个方法名和这个方法名长得一样,那这样的话,我们在调你这个方法的时候,记你这个方法名的时候,只需要记一次啊,代码也比较美观,是不是也比较美观。那还可以加类名,去掉class m1方法不class。去去掉class m1方法啥意思去调用。
15:02
去掉,用class。嗯,还可以加类名去调用可以啊,没问题啊。没问题啊,这这这这类名你你可以加呀。没问题。啊,这个是没问题的,你这个类名加不加没没没没没关系啊。啊。你要掉下边你得换换个类名,你得换类名,你你要掉下面换类名,加类名才行,你不加类名调不到这个上面。我不是说过吗?在同一个类里边,类名才能省。你出了这个类型加列名了,要不然调不上啊。要想调下边这个,你得加点名。不加列名,调不上这个方法。我之前讲过这个啊,之前讲过。嗯。来,那么这块呢,咱们Java c呢,去编一下Java运行啊,你看没问题是吧,好那。
16:00
这是一部分内容啊。
我来说两句