00:00
来下边呢,我们复习一下,哎,咱们之前讲的这个内容,那现在呢,大家学这个面向对象有点感觉了不没有啊啊就现在呢,有点还是像这个盲人摸象一样啊,就是整个呢,4563张呢,有点像个大象,大家现在呢,就是这个咱们还没有学完啊,现在你可能这个之前摸到鼻子了,现在开始摸大腿是吧,我大腿摸着摸着突然想抱一下是吧?嗯,然后后边这块呢,还有剩下这个内容啊,一点点摸摸摸,一直等你把这个全貌都摸完以后啊,这时候你整个这个形象这个体系呢就出来了,哎,就是这个意思啊,就现在呢,你还没有见到这个全貌呢,所以里边有些内容的话呢,其实咱们有些是前后这个交织在一起的,咱们现在试图呢,给它剥离出来一个一个线,这个线呢,就让大家呢,学目前的知识呢,用不着后边的啊,其实呢,这个有一些内容的话呢,后边稍微可能会涉及到一点咱们。
01:00
相当于前边先用了,然后后边呢,在系统一讲哦,前面这块你也就更清楚了,诶当整个这个内容讲完以后,它连成一片了,诶这个你会感觉好很多啊,而且一旦我们面向对象讲完以后,后边咱们见再讲这个涉及到这个异常处理啊或高级的一些内容,咱们这个速度呢就上来了,哎,因为呢,这时候你已经比较清楚这语法是什么了啊,那就速度一加快,你发现哎也挺好啊,属于这种啊行,那咱们呢,看看这个之前讲的啊,咱们前一天呢,主要其实还是来谈的方法啊,这个方法这里边呢,细节还挺多啊,也是咱们写代码中重点要考虑的一个结构啊,是这个原因,这个方法之上呢,咱们这个上课讲的时候一上来呢,其实说了一个概念叫做匿名对象,哎,在这里提到的啊,哎把我们这个笔记呢补一下类与对象,最后好匿名对象说呢,哎,我们造对象的时候呢。
02:00
没有显示的附给一个,呃,给这个对象呢,附一个变量名,那我们就称作叫匿名对象啊,创建的对象没有显示的附名,这个很好理解啊,那它主要的特点哎,就是匿名对象呢,只能调用一次。啊,这是调一次,这个调一次呢,主要是这个事儿哈,哎,其实这几个这都算了举例,哎主要诶这个他给注释掉了,我把这个打开吧。这样啊,那CTRLC。哎,这么着一下啊。行,这个我回来我再给大家注一下。主要是这个事儿,就是我们通过这种new对象的方式呢,叫匿名了啊,直接后边你调方法也好,调属性也好,呃,这里边呢,这四行代码,呃,实际上是拗了四个对象,哎,你试图呢,说想让一个对象呢,调这几个功能实际上是不可能的,这就是我们所谓的只能调一次啊,嗯,当是在开发当中呢,我们倒确实会这样,会会去写这个匿名对象,当然我们开发中写匿名对象啊,不是这种用法啊,不是这样去用的,怎么用呢?
03:14
这种用法啊,嗯,我这儿呢,我这样啊,我先把这个CTRLC粘一下。哎,其中我们这个类啊。那其中这个类呢,是这样定义的,咱们开发中用的话呢,都是这样来用的。嗯,这个我就把它删了啊。这个到前面了。就是我们呢定一个类啊,这个类呢,它这个行参呢,是一个类类型的,就方法的行参是一个类类型的,然后呢,当我们去调用这个方法的时候呢,那很自然的,你需要传进来一个实参,就是人家这个类型的一个对象。
04:14
那么我们很多时候呢,就没有说显示的给他造完这个对象啊,有个变量名,然后把变量名附到这儿了,很多时候都没有,而是呢,直接呢拗了一个对象,诶这呢就相当于我们匿名对象是个十参,直接付给了我们这个缝,诶从这个角度来看的话呢,如果你在外边再想去,你刚用你刚才用的这个逆缝是用不了的,就是咱们所谓的只能用一次啊,但是你在这个方法里边呢,其实你相当于将一个匿名对象赋给了一个有名的对象,有名的变量名了,在这里边呢,是可以用多次的。哎,就是咱们开发中用的话呢,经常是这样来用啊,不会说这这种用法的啊,行,这是这个事儿,然后呢,我们又说了一下,所谓的这叫万事万物皆对象啊,大家呢去理解一下就行,这呢就不多说了,通过不断的大家去写代码,你去体会我们说的这样的一个结构啊。
05:11
CTRLS行这就过了,然后呢,我们前一天重点讲的其实就方法的这样的几个事儿啊,方法的重载可变形参直传递递归啊这几个问题啊,一个一个来,首先重载,咱们考试也考了这个,我就哎快速的咱们粘过来就行啊。好,重载呢,首先是它的一个定义。哎,这个就不多说了啊,这个咱们已经提过了,这个是一个定义,哎,然后呢,我们总结为两同一不同。哎,这样一个情况,哎,CTRLS一下,OK,这就过了啊,然后呢,涉及到这个举例子,举例子的话呢,一方面是我们现成的API当中,那有大量的这个重载啊,这是举例一啊,是它这里边的啊,包括呢,像咱们这个其实是我们这个叫print stream中的啊,是一个打印流当中呢,咱们调的这个print line print方法,哎这呢,都是这个重载的啊,这是举例一,然后举例二,咱们自己写的,哎下边的这些方法,哎如下的这四个呢,构成了重载CTRLC。
06:27
看这是这样子的,稍微小一点啊。呃,说不能构成重载的,就是以我们自己写的这个为例,后续呢,咱们这边写了三个嘛,这三个呢,跟上边这四个呢,就不能构成重载啊,这个我们在这补一下啊,说如下的三个方法不能与上述哎四个方法构成重载,哎,你像这个啊,和咱们的,嗯,这个第一个认为是一样了,哎通过这个法律类型不能区分的啊,然后下边呢,是这个参数名不一样了,这也不算,这个权限不一样了,这也不算。
07:05
啊,就类似这样的情况。哎,这都是不能构成重载行,那么如何判断这个是否构成方法的重载,哎这个呢,咱们说就严格按照三点,嗯就直接这样,嗯直接这样说吧,严格按照定义啊,这个判断就是两同哎一不同哎就可以了啊然后呢,你要额外补充一句的话呢,就是呃跟这个呃权限修书啊,反馈这类型啊,行参呀,行参的这个名啊没有关系。哎,就这么个事啊。好,下面这个呢,是对咱们开发来讲是有意义的,刚才复习的时候也说了啊,就是大家呢,仅仅知道这个重载的概念,其实没有太大意义,主要呢,就是呃,你知道在一个类当中,咱们是可以定义同名的方法的。
08:02
啊,但是呢,要求你那个参数列表得不一样,主要目的呢,就是因为是为了咱们在调的时候呢,你不能有歧义啊,就是这个事儿啊,诶我们如何调用的是通过两方面去唯一确定的某一个方法啊,就是这两方面啊好这呢就是咱们讲的这叫重载,哎就完了啊那在重载包括后面呢,我们再讲一个知识呢,就会涉及到一个面试题,这个面试题呢,就是诶方法的重载与重写呃的区别。哎,咱们方法的重载呢,已经讲了,然后这个重写呢还没有讲,这是咱们在讲完继承以后呢,才讲的一个内容啊,这呢是一道非常经典的面试题,或者说呢,就比较老的一道面试题了哈,嗯,就是这个题呢,如果面试的时候,面试官问到了,其实你心里边可以稍微小小的鄙视他一下,因为这个题实在是太老了,就是或者说太基础了,以至于说呢,当成一道面试题都有点掉价,就好比是你去面试的问你说这个五乘以三等于几啊。
09:10
这个就感觉就有点掉价感觉它是吧,但是呢,就是你答出来以后,你说五乘三等于15,这个时候你可以鄙视它,但是你要说五乘三等于几啊,你这时候你还犹豫了,那就完了,那时候他会大胆的鄙视你是吧,这么基本的问题你都不会啊,属于这种了啊,那说白了就是这个题还是需要大家掌握的,就是重载呢,就是咱们上面讲的重写还没讲啊,实际上这个重载跟重写呢没啥关系。啊没啥关系,就是这儿呢,就是在面试,面试题里边呢,有一类题啊,这就是一个技巧啊,面试里边有一类题呢,就是长得比较像的结构呢,通常爱考啊,你像这个方法的虫仔跟重写,其实它俩没什么关系,就是因为呢都带一个虫字。诶,所以他就考了,甚至你也可以说,呃,方法的重载重写和重庆有什么区别,对其实没什么关系,但是就是因为都带了一个重字是吧?啊那类似的话呢,其实还有很多的这个考题啊,比如说这个咱们后边会讲的啊,像这个roses啊和这个throw,这是我们在异常里边要讲的,哎,相当于还有这个像咱们说的string,这已经学过了哈,String buffer。
10:24
String builder,哎这个咱们讲常例的时候会说,哎讲集合的时候呢,像这个collection和哎collections这个还有这个final final啊finalize,诶这呢有什么区别等等类似的,你会发现呢,就这些结构呢,长得比较像,诶长得比较像呢,他就爱给你考,因为呢长得比较像,确实从这个开发者的角度,刚开始学长得像呢,确实也容易整混。那干脆的人又考一下,但实际上呢,往往长得像的呢,反而呢,倒是没什么太大相关性啊,属于这种啊,就是以后大家呢,你凡是遇到长得比较像的人,你自己及时总结一下,那面试的时候可能就会考这样的问题啊行,那这个问题呢,咱们现在就先不讲了,因为还没有说重启啊,像这种问题的话呢,本身没什么关系的,让你谈区别,那你就是把各自这个都解释清楚就完了。
11:25
啊就完了啊,那对应的呢,还有一种呢,就是长得不像呢,还考的啊,像这个,比如我们后边A讲B对讲啊这个诶还是用这个这样的啊像这个叫抽象类和接口有什么区别。啊,还有这个呢,后边讲到的这个叫诶sleep讲多线程的时候啊,和这个weight它呢,有什么区别,嗯,像这种一看就长得不像,长得不像呢,让你谈区别,可能他们会有一些共性的地方啊,这时候你要把它们有相同点的地方呢提一下啊,你看长得都不像,他还让你说他俩有什么一样的地儿,那说明他们可能还真有一些一些一样的一些方面。
12:08
哎,就这个意思啊,好,这就是套路是吧,这是套路啊,这就过了,然后下边可变行参,可个数行参的方法,这个其实挺简单的,就是一个新特性啊,所以大家呢,要把这个知识呢,得先是变厚诶,然后呢再变薄,变厚呢就是咱们上课讲的过程,这就是变厚的过程,关注一下它里边的这些细节,然后我们复习的时候呢,就是把它变薄啊,让你感觉呢,其实这里边呢,说了那么多,其实就说了一个什么什么样的一个事儿,是吧,有这种感觉就可以了啊。就是个新特性啊,说白了就是以前呢,咱们在定义方法的时候呢,如果你要涉及到多个同一个类型的变量,咱们都是用数组这样写掉的时候,你就你得给人放个数组啊,数组里边放你这所谓的多个数据啊,现在的话呢,说稍微省点事吧,说呢把这个中号去了,改成三个点,然后你调的时候呢,也可以呢这样调。
13:16
还用原来数组方式调,或者呢,你就直接干脆把这个new的这个结构呢也删掉,直接呢就放这几个数组元素AB ABB CC就可以了啊,其实就这么个事啊,其实这个点呢,比较简单啊,嗯,具体的举例子的话呢,就咱们写的这几个,然后尤其是像这个咱们说他呢,哎,就不能够与上述这个方法同时存在了。嗯,不容易上数,嗯上一个吧,这个方法啊同时存在,嗯,就是因为呢,它俩描述的其实就是一一种情况了,编译器的话呢,会认为它俩呢是同一个方法,不能都写了啊行,就把这几个呢,咱们CTRLC粘一下啊看这呢就是一个举例子啊,CTRLS一下,好,那么咱们主要关注的就是这个,哎,当你这样去写的时候,在里边毕竟呢,它是可能有多个变量的,那我们怎么去调用这里边的每一个变量呢?
14:25
跟原来数组一样,哎,跟原来数组一样啊,就行了啊,那么调用的时候呢,咱们也说了,你可以是零个一个两个啊等等等等可数多个参数都行,所以呢,我们像这个上面写的这个程序的话呢,呃,像这种的不带参的啊,包括这种的哎,都认为是掉的叫可变形参了啊像这个大家说也是,只不过针对咱们这个问题呢,哎有一个确定的了啊,那就先以确定为主,没有它的话呢,掉的也是塔啊,是这种情况啊,哎,CTRLC这呢,我就。
15:00
这样拿过来一下啊。哎,这呢,其实都都是啊,CTRLS行这就没了啊,其实就是一个小的知识点而已啊,不用把它想的太太严肃了,后续呢,咱们讲到这个GDBC的时候呢,就是数据库讲完以后啊,呃,咱们用的时候呢,会见到API呢,有些方法呢,就写成这个样子了啊,你也不用紧张,你就把它想象成原来是这样一一样的意思就行了,哎,你可以给他填多个十参的啊。
我来说两句