00:00
好,那么关于泌向对象呢,咱们说这个第一个章节呢,咱们就算是讲完了啊,整个内容呢,相当于面向对象呢,诶可以看到是完成了1/3的这个内容量了,OK啊呃,然后呢,这块呢,咱们可以稍微的给大家呢提前说留个作业啊,什么作业呢,就是咱们面研对象呢,这里边的细节呢,还是挺多的啊,咱们在一开始的也提到了有三条主线,诶大家你可以按照这三条主线呢,去捋顺咱们整个面向对象的这个内容啊,然后呢,在整个咱们这个面向对象讲完的时候,诶大家呢,诶要求每个人呢,做一个思维导图。呃,你看到我在这个第八章里边呢,其实是放了一些之前的同学做的这个思维导图啊,我就简单的放了几个啊,这个呢,你可以做一个参考啊,你看看他诶怎么画的啊,诶需要呢,把我们整个这三章里边涉及到这个内容啊,大家呢,展示在一个思维导图上。注意这个重点的话呢,一定是过程啊。不是说呢,你最终的目的是要得到这样一张图,那这样的话呢,这个我已经把答案都给你了是吧。哎,这个重要的是你自己画的过程,这个过程呢,其实你是能够梳理很多的细节的。
01:04
哇,这个打开之后呢,画的还是有点复杂的是吧。嗯。对你你看他这块拿到以后呢,你可能自己看的话,你都不想看是吧。诶,但是对于他自己来讲的话呢,他画的过程他特别爽是吧?诶他自己这样捋完之后呢,他其实自己呢知道哎里边有哪些相关的这个内容,所以呢,还是那意思啊,大家呢,目的呢是为了呃体验这个过程,然后呢,你自己画完以后呢,你再看看你们组里边其他同学画的,然后呢,你自己弥补一下,你看哪些呢,你没有涉及到,诶是不是这块自己不清楚,诶画的过程其实呢,就是大家记忆的过程,最终呢,只是呈现出来这样一个文件,这个文件呢,也有可能你后边呢,可能没咋看。或者呢,再隔一段时间你再看,发现当中自己画的不够详细,这都有可能啊,诶所以呢,通过这个方式呢,大家去捋一捋我们的这个内容啊,提前呢,把这个作业呢,咱们就先留下了。然后呢,针对咱们这个第六章啊,这里边儿章节的内容啊,其实不算少了,我们做一个复习,呃,打开我们零三啊复习和企业真题第六章啊,打开它啊。
02:02
啊,首先的话,我们来看一看这个这一章涉及到这个内容,从前往后呢,咱们顺一下啊,首先的话呢,我们提到了一个概念啊,这个叫面向对象啊,还有一个概念呢,叫面向过程,哎,我们做了一个对比啊,所以呢,一开始咱们就写个叫面向过程啊,来一个VS啊,诶面向对象。OK啊好,这呢就算是咱们的第一个内容了,那么第二内容的话呢,诶,我们就这里边强调了一下说呢,呃,面向对象编程的设计重点呢,就是类的设计啊,类的设计呢,这里边儿我们提到两个基本的元素啊,一个是类啊,一个呢叫做对象。那我们就要关注一下这个类是什么概念啊,对象是怎么回事儿,以及呢,整个编程的过程当中,哎,我们设计类呢,涉及到这种属性方法来先宏观上呢,我们做了一个演示啊,然后呢,具体的话呢,我们就呃走了一下第三个项,诶在类的设计当中,涉及到两类非常重要的成员啊,一个呢叫属性啊,一个呢叫做方法,哎,所以我们这呢先写啊说类的成员之一叫做属性。
03:03
哎,或者呢,我们这块呢,叫做成员变量。OK啊好,那么紧接着的话呢,我们再讲了他的第二个这个成员啊类的成员。哎,之二啊,我们叫做这个方法。OK啊,这呢,我们说对一个类来讲呢,最基本的这样两个成员了啊,属性方法,那这里边我们就谈了很多的这个细节的问题啊,好,那么在紧接着的话呢,关于方法这块呢,我们基本上会使用了,嗯,但是呢,方法这块呢,是我们说一个类里边最重要的一个结构,所以紧跟着我们就来了一个叫再谈方法。这儿呢,我们就通过四个点啊,对方法呢,做了进一步的这个刻画,比如说呃,5.1先提到了一个叫方法的。重载是吧,哎,5.2那提到一个呢,叫可变。哎,可变个数行参的方法啊,这是我们说的这个问题啊,5.3啊,提到了一个叫方法的参数传递机制。啊,这个我们称为叫叫直传递机制,诶5.4。
04:02
啊,讲了一个叫递归方法。啊,没问题啊好这呢,就我们所谓的叫再谈方法啊这个内容啊,那么在这个,诶下边的话呢,我们这儿啊,诶咱们把它单独拿出来吧,前面呢,我们提到了说这个对象的问题了,呃,以前的话呢,我们讲过数组啊,把它俩合在一起,这呢我们引入了一个叫做对象数组。哎,关于对象数组的一个使用。啊,其实呢,这块没有什么新的知识啊,数组呢,还是我们原来那个数组,只不过呢,数组的这个类型啊,元素的类型变成类类型啊。啊,那你实际上给它赋值的时候呢,就是放的是一个一个的对象了。啊,这是我们说的叫诶对象数组啊这样的一个问题了,啊好,那么再接着的话呢,我们就提到了两个关键字啊,分别呢,叫做package。啊importt,哎,关键字的使用。哎,这两个关键字的话呢,不太难,哎我们使用频率的话呢,还算是比较高的啊OK啊行,然后这个完了以后呢,我们讲了一个叫,哎,咱我就写成叫O了啊。
05:04
叫object programming,面向对象编程啊,面向对象的啊,特征之一。哎,特征之一啊,这个叫封装性。哎,没问题啊,工商现在我们放到这个第六章当中来讲解的啊,继承啊,我们到时候再放到第七章我们去说啊。好,这个封装性呢,我们就说完了,完了以后呢,紧跟着我们讲了,叫类的成员之三啊构造器。啊,关于构造器的一个使用,然后呢,在这里来一个十,哎这呢,我们就讲了几个零散的这个小的知识了,啊这个诶三个小知识。哎,三个小知识啊,分别对应的是什么呢?我们来个啊10.1啊提到了说这个呃类的呃实例变量的一个呃赋值过程。哎,这是第一个啊,然后10.2,哎,我们又提了一个什么问题。病是吧?
06:01
哎,它的一个理解啊,然后再接着10.3啊,提到UML类图是吧。诶OK啊好,那么这个呢,就是整个呢,咱们讲的这样的一些这个内容了啊,诶从今往后呢,我们简单的稍微的顺一下。啊,稍微的顺一下啊好,第一个啊,面向过程与面向对象,这呢就是个了解啊。诶,我们现在在讲的是叫面向对象,你说我讲面向对向之前还非得把面向过程现在弄清楚吗?其实是不用的啊,哎,只不过这块呢,我们就是稍微的体会一下就行,为什么提到这两个概念呢?因为它都是属于程序设计的思路哈。哎,我们这里写一句话啊,说呢,不管是面向过程。啊,还是呢,叫面向对象。啊,包括呢,我们还有这种函数式的这种编程是吧,诶不管是他还是他,哎都是呢,叫程序设计的这个思路。啊没有说呢,说我们这个呢,就只能用面向过程,这个呢,就只能用面向对象,没有这个说法,哎,只不过呢,我们考虑呢,在什么样场景下用它可能好一点,什么样场景下可能用它好一点,诶所以下边我们就做它,诶对它俩呢,做了一个对比啊作面向过程的话呢,我们提到了它呢,哎是以函数为基本单位啊。
07:14
哎,适合呢,解决这种。是简单问题。啊,简单问题啊,比如说啊,咱们讲课的时候提到过说呢,呃,这叫什么呀,开车的问题是吧。啊,你要开车了啊,这个过程是什么样子的啊,这是他的啊好,然后接下来呢,讲面向对象,它呢是以什么为基为单位。类啊,诶为基本单位啊,也就相当于呢,我们在啊,你看一个项目的时候啊,你打开它的对应的这个代码,你会发现呢,它其实都是由一个一个的类构成的,当然了,我们后边还会讲,除了类之外呢,还有这种接口的概念,包括注解呀,枚举呀等等的啊,只不过呢,这个类呢,属于我们最常见的一种结构了啊。当然面向过程我没说也没说非律是只有函数是吧,只是说以它为最基本的一种单位而已啊这个呢,适合。
08:06
啊,解决这种复杂问题。对啊,这个呢,我们当时说的是叫对叫造车了。对,解决这样的一个大的问题,我们看看在这里边有哪些主体,这个所谓的主体啊,就是嗯,当然是具体的对象了啊,但是你要有对象的话呢,这个现有类,诶,所以我们得先去把它,诶具体的属性啊,功能啊,诶分装到不同的类当中,这呢就我们说的这个基本的单位了。比如说这个造车的这个事儿啊,行,这块呢,大家做一个了解就可以了啊,也不用去深究啊,好,那么下边具体的话呢,我们说面向对象里边呢,有两个最基本的概念啊,一个呢叫做类啊,一个呢叫对象啊,经常呢,在这个笔试面试当中呢,也会去问大家啊说呢,呃,类跟对象有什么区别呀,你是怎么理解的呀?呃,其实这个事儿呢,并不是特别复杂啊。这个事儿其实并不复杂啊,哎,我们说雷雷的话呢,实际上呢,它是抽象上的是吧。抽象的是不是概念上的定义?
09:02
他是抽象的,就比如说我们说那个你说的人,诶,大家抽象的想象的那个人,那个类,他就是个类哈,然后呢,你具体你看到的,呃,这个这个咱们说比尔盖茨啊,还是是任正非啊是吧?哎,这都是具体的对象了,OK啊,包括呢,我们说这个手机,你看到的具体的那个手机呢,都是对象了,诶抽象概念上的那个手机呢,哎,它就是一个类的概念了。那这个对象的话呢,就是我们说的具体的啊类的啊,一个一个的实例。哎,我们称呢,就是对象的这样的一个概念。啊,所以他俩呢,其实我们在这个具体用的时候呢,其实并不并不容易这个混淆啊,并不容易混淆。好,这个呢,就是我们说的这个类和对象的一个概念啊,大家呢需要呢去清楚。啊,咱们讲课的时候呢,呃,接着呢,就给大家呢,去举了具体这个类的这个啊这个这个定义了啊,我们当时定了一个缝,然后对象呢,我们就真正呢去拗了啊一个一个的缝的对象,OK啊然后呢,在这块呢,诶我把这个知识点就放在这儿了啊什么知识点呢,就是这个事儿。
10:03
非常的重要啊。诶,这个事儿。说呢那个面向对象啊,整个呢,我们进行编程的时候呢,它的一个整体的步骤。这个非常的重要。哎,到目前为止,大家你看这三步呢,其实都是适用的啊,以后大家只要写Java代码,这三步呢都是适用的,诶什么三步呢?第一步诶先要创建类或者我们叫设计类啊,诶创建类呢,其实就是创建或者叫声明类的内部成员了啊,属性啊,方法呀,构造器啊,哎,内部类啊,代码块啊,这都属于它的内部成员,那设计完以后的话呢,我们可以呢去创建他的对象了。呃,创建对象的话呢,我们目前接触到的就是通过new的方式来创建的。以后呢,我们还有其他的一些方式来创建对象,OK好,对象创建好了,下边的话呢,我们体现叫面向对象编程啊,那就是拿着对象呢,我们去操作呢,你当初声明这个类的时候呢,内部的这些属性和方法。咱们也讲了封装性了啊,以后呢,我们会较少直接来调属性。
11:03
那通常呢,都是通过方法呢,来去操作这些属性OK啊,来完成相应的功能。第二呢,就是我们对应的这三个步骤,哎,我又强调了一遍,它呢非常的重要啊,诶大家都要去记住它。好,那么关于这块呢,我们就说清楚了啊嗯,你要说呢,我们讲这个内容之前呢,其实又还讲了一个事儿啊,关于什么呢?诶,关于我们讲的叫。哎,对象的一个内存解析啊。这个我这么着一下啊。哎,这个我们叫哎对象的一个内存。来解析啊,这个内存解析的话呢,当然我们还画了几个图来画过呢,就是呃,相当于是创建。哎,类的一个对象啊,这个事说过啊,然后呢,创建类的多个对象。多个对象。诶包括呢,我们还讲过啊,后边讲到这个方法的时候呢,还提到过这个方法的调用啊,它的一个内存解析啊。
12:01
诶这呢,这不就提到了,我们每调一个方法呢,其实它都对应的是一个战争啊好,那提到这个问题的话呢,其实这不自觉的,我们就相当于对这个,诶Java中内存的划分呢,需要大家呢去清楚的啊。在Java中啊,内存。啊,结构的一个,呃,划分啊,这个我们往前提一下吧,哎,那么首先呢,大家需要知道呢,就是Java当中,它这个内存呢,划分成几个部分啊。啊内存啊,结构划分为首先呢,这块呢,我们提到啊,按照这个重要性来说哈。对,我们直接呢叫站了,但是呢,有一个站呢,跟它容易出名是吧,所以我们就区分了一下啊,这个我们称为它叫呃虚拟基站啊,它还有一个站呢,叫做。本地方法站是吧,哎,这个呢,就是对应我们这个Java呢,去调C。方法的时候呢,AC的那些方法呢,就用的叫本地方法站了啊,这个我们往后排,呃,虚息战就是平时我们说的这个占了,哎,然后其次呢,重要的就是堆。然后后边我们再提出到的呢。
13:01
叫做方法区啊,然后呢,还有这个叫哎程序计数器。哎,程序计数器啊,也称为呢,叫PC寄存器。OK这样的概念,呃,本地方法站啊呃,成序计数器呢,其实我们都已经在使用了啊,我那会儿呢,带着大家不是看过这个资金码文件嘛,呃,像这个资金码文件的话呢,它按照这个,比如这个方法在执行的时候呢,是不是就第一个,第二个,第三个第四个依次这样执行啊。执行的时候呢,你看前面它是不是有个编号啊。哎,那么这个所谓的编号呢,其实它就记录一下你现在执行到哪了,哎这个呢,执行的这个到哪的这个东西啊,它其实就会放在我们的程序计录器里边,比如我现在到期了,我就诶寄存到这儿。哎,那么为啥要寄存一下呢,我直接往后走不行了吗?因为CPU呢,咱们执行的时候呢,假设呢,你是个单核的啊。你单核的话呢,意味着同时是不是只能执行一个任务啊。对,那我现在呢,电脑当中是不是有好多的进程。啊,一个进程当中还有好多的线程啊,现在其中一个啊,这个比如说一个执行路径嘛,就是它,那我现在执行到七这了,突然现在CPU是不是切换到别的任务去执行了。
14:07
那执行过去之后呢,他回头还回来接着执行,他得记录一下你执行到哪了。哎,所以这时候呢,就用的叫呃程序计数器,专门来记录一下你这个程序呢,目前走到哪儿了,哎,就是这样一个概念啊。哎,我这样一说呢,大家能知道大概就行啊,这两个呢,我们就约等于就忽略掉了啊,那么针对于前三个啊,我们说呢,是比较重要的啊,那么这三个当中我们需要注意一下。针对于我们面向对象这块呢,到底都是哎存什么的啊,首先呢,我们说这个,诶虚拟基站是吧。它是存什么的?啊对,这里边儿我们就提到了这个站里边呢,它有个基本单位啊。战争。啊来说呢,这个是以战争。为基本单位。哎,那么这个战争的话呢,会不断的叫入战和出战。
15:01
啊,有。入战和诶出战的这个来操作啊,这是第一个问题,那第二问题的话,这个战争对应的是谁。对,我们说每个战争啊,对应一个哎方法,所以呢,我们说这个战争入战和出战,其实就对应着我们的方法的一个开始执行和结束执行。啊,这是他啊说每个战争对应的一个方法的,哎,这个每个战争入战吧。哎,每个战争的这个入战这个操作,哎,对应着一个方法的这个执行是吧。哎,这是这样个过程,哎,方法执行完了啊,相对应的这个战争呢,也就出战了。啊,这是这个事儿啊,然后呢,这个方法内呢,我们会定义局部变量。哎,所以呢,接下来一个问题啊,就是方法内的局部变量会存储在。哎,是不是对应的就是战争中啊。哎,这个呢,我们也很好理解了啊,实际上呢,在准确点来讲啊,这个战争里边呢,又分成好几个部分。
16:00
啊,咱们就这个大家就了解了就行啊。诶,就是虽然咱们讲的是这个基础啊,但是我觉得稍微的让大家多看几眼呢,也也行。啊,这个我找一下这个吧。你看啊,这个我们在方法一里边调方法二,方法二呢调方法三,方法三调方法四,哎,每个方法对应个战争,相当于呢,哎,战争一里边呢,接着又压入一个战争二,战帧三战帧四,每个战内里边呢,其实你看有这么大一块空间啊,它又分成了好几部分啊,局部变量表,操作数站这个方法返回地址动态链接啊,附加信息看挺多的啊,咱们所说的呢,诶,我把局部变量放在战争里边,其实呢是放在了这个位置。对局变量,局变量它专门有个叫局部变量表,就放在这个表里了,这个表呢是一个数组。啊,就一个一个往里放就行。啊,这个大家你就大概看一眼就行啊,这么细节的问题啊,咱们就不多讲了啊,你暂时呢,就只知道呢,这个局部变量啊,是放在我们的战争里的,自然而然的局部变量是不是就都放在站里了。
17:02
所以说呢,明确一点啊,局微量都在站里面。哎,这个把它记住啊好,这是虚拟站,然后呢堆空间。堆空间或者叫堆都可以啊,堆里边存放的是什么呢?哎,先不用着急说成因变量,哎,先要记住这个啊,拗出来的结构。都在堆里边了,那逆出结构呢,典型的呢,一个是数组,一个是对象是吧?哎,这个要记住它哈,那就对应呢,就是我们说的这两部分,哎,数组的话呢,这就涉及到了这个。这样我们说吧。这样第一个是吧,第一个呢提到数组,那这里面就提到说数组的元素是不是在堆中。啊,这是一个啊,然后第二呢,你说对象在这里边儿呢,哎,对应的我们说这个对象这个。啊,成员面料。啊,在对中。啊在堆中,好这呢,我们就明确说了啊,说这个局部变量在这里边,成现变量在堆里边,哎,成因变量其实它呃是放在对象里的,对象呢在堆里边的。
18:01
啊,所以他就跟着也在堆空间里了。OK啊,这个大家记住它啊,好这呢就是我们说的基本的原则了啊,然后呢,接下来我们说在涉及到的呢,叫做这个方法区了啊。这个方法区呢,呃,其实它是一个概念上的一个定义了,呃,具体落地的话呢,在不同的虚拟机当中,这个叫法呢,可能还不太一样。啊,比如说有的叫这个永久带呀,有的叫原空间呀,啊其实这块呢,跟JDK版本呢也有关系了,这个细节咱们就先不管了啊总之的话呢,这个什么结构放在方法区呢。哎,就是我们加载的。啊,这个类的这个模板结构啊。哎,我就先这么一写。比如说啊,咱们诶坡诶缝吧,缝P等于new一个缝。哎,那么大家你看啊,咱们在main方法里边,我写了这样一行代码。我的目的呢,是要创建一个对象。双节对象的话呢,你是不是要调构造器啊。那我调构造期之前,是不是得先确保你得有构造期吧?
19:00
那我先做的事,其实是先把这个缝这个类啊,先加载到内存当中。加载到哪儿了呢?就放到方法区了。哎,其实你看这样去理解啊,咱们就简单一化啊,这叫站,这叫堆,这呢叫方法区,好我现在有这样一行代码,在没方法里边,我现在执行,我一执行首先呢,你要用构造器,你要用构造器,这构造器呢得保证内存中有,怎么办呢?我先把这个类呢,先给你放到方法区里。啊类里边呢,这里边儿你像这个类的声明啊,包括我们以后还会讲这个有副类呀,是吧,这个这个你的属性啊,你所有的方法呀,你所有的构造器啊等等,就这些结构呢,我们全放进来。放进来以后的话呢,你现在是想调用一下其中的这个构造器。好,我就让你掉。呃,这个其实说有点细了啊,咱们刚才看了一下那个自解码文件,大家也发现了这个构造器呢,其实它会以一个方法的形态去呈现是吧。是不是就是这个东西啊。哎,这个东西呢,其实也算是一个方法了哈。但是咱们在编写代码的时候,大家先要明确一点,哎,构造期是构造器,方法是方法啊。
20:05
这是两个不同的东西,只不过呢,我们在真正执行的时候呢,这个构造器呢,也把它,诶这个相当于是以一个方法的形态呢去呈现了,也就是说呢,咱们加载到这个站里边这个东西啊,可能是一个普通的方法,是不是也可能是一个这种这种方法。啊,你可以把它叫成比如叫构造器方法啊。这样一个结果啊好,那这样呢,其实就加载到这个站里边,加在我们这个意内的方法了,这个执行完以后呢,最终的目的呢,是在堆里边给你造了个对象。哎,然后呢,造完以后这个对象呢,它其实也就出去了啊,他出去以后呢,这块还声明了一个你在没方法里边写的嘛,没方里边呢,还有一个P 1P就指向你这个对象了。那就这样的结构。哎,这个注意一下啊。好,这个呢,就是我们大家稍微关注一下这个事儿就行,就是这些细节啊,其实要讲起来,这个咱讲一天都可以的。啊,但是咱们现在呢,就先把握核心的问题。啊,再捞到一边啊,U变量在站里边,程序变量在这里边放下去呢,是你整个类的结构。
21:02
就完事了啊,诶这个清楚以后呢,我们再去画对应的这样一些图就行,哎,有的时候在这个笔试面试当中啊,他可能也会问到我们相关的这种结构啊,一会儿我们再看一下下边这个企业真题啊,诶那么不管为了这个真题主要呢,我们平时呢,再去理解这个面向对象的时候呢,我们也有必要呢,大家呢画一画图,尤其呢,下边我们讲的这种直传力机制的时候呢,哎更会懵了,那就画内存图啊,就。好,那么这个内容咱们就说到这儿了啊,哎,下边。提到的叫类的一个成员啊,我们叫做属性了啊,这个属性呢,咱们在讲的时候呢,重点是说的这个属性。属性啊,跟我们这个局部变量的一个对比。它的一个对比了啊嗯,相当于呢,借着这个内容呢,我们把这个局部变量呢,相当于是也就讲了讲啊呃,这块大家主要关注的就是他们,呃,先说这个事吧,首先这个属性哈,大家呢,知道这几个名呢,它是一样的。属性呢,也称为呢,叫成员变量是吧。哎,或者呢,你就称为它叫field是吧。
22:02
F就我们说的这个属性的意思了,哎,然后呢,你会发现呢,你看咱们这里边儿,你看到它翻译过来的时候呢,是不是叫字段了。对的啊。哎,这个呢,你也可以呢,就把它叫成叫字段啊。哎,有的时候呢,还会翻译成叫欲啊。哎,就这个玉。哎,都可以,呃,这个回头你知道呢,他写的叫字段了,你知道是什么意思就可以了啊好,这个呢是属性的,我们一个呃,几个不同的叫法了啊,那其次的话呢,我们关注一下这个属性和成员变量他哥俩的这个不同。啊,这个不同的,诶不妨比如说我就写到这儿了啊,不同的点的话呢,我们稍微的大家关注一下就行啊,相当于你去理解一下他们二者的这个区别。哎,我们从哪些角度呢去讲的呢,首先的话呢,他们二者声明的位置。肯定不一样。呃,一个呢是直接写到类里边的,一个是写到方法里了。或者叫方法的行参了是吧。啊,生命的位置不一样了,也就决定了它们在加载到内存中的时候呢。呃,内存中存放的位置是不是也不一样了?
23:04
啊,一个在堆里,一个在站立是吧?哎,这个是不一样的啊,还有哪些。诶,作用欲不一样。啊,一个呢,在整个这个类中是有效的。啊,一个呢,是整个只在你这个对应的这个方法内是吧?哎,或者要构造器内,它是有效的,哎,所以这个作用域呢不一样,还有吗。对,权限修饰符不一样。哎,属性呢,可以有权修饰服务局部变量呢。一定不能有。是吧,哎,这是他还有吗。哎,对,这个初始化值的问题啊。哎,那么这里边儿呢,就提到了我们这个属性呢,是有哎默认初始化值的,而它呢,在调用前。必须要显示复制是吧。诶,这个呢,我们需要注意一下啊,然后另外呢,我们还提到一个叫生命周期是吧。哎,生命周期不一样啊,首先的生命周期呢。哎,随着对象的创建而创建,随着对象的消亡而消亡,哎,就变量呢。
24:03
诶放在战争里边了啊,战争呢是一个方法,方法调用的时候呢,它就有了。诶方法呢,执行完了,哎,他也就没了是吧,对这个就很好理解啊行,那么通过这几个呢,大家其实呢,把这两个知识点呢,就都诶相当于熟悉熟悉就行啊,属性这块呢,其实不太难啊好,接下来的话呢,我们看这个方法啊,方法呢是我们讲这个内中的这个重头戏了,诶我们单独讲这个内容的时候呢,其实主要说的就是方法的一个声明啊。呃,方法的这个声明这里边儿呢,有这个具体的一个细节,简单我们再写一下啊,叫权限修饰符。返回值类型。方法名小括号行参列表啊,然后呢,这个大括号啊,这里边儿呢,我们写这个叫方法起。这个呢,是我们说最基本的这个部分了啊,就是说我们只要那几个方法都会有这样的几个部分的。后边的话我们再去讲,可能还有其他的一些修饰符啊,Static呀,Final啊,Abstract呀等等啊,这个位置呢,还可以写这个抛出的异常以后再说啊,那个呢,都可以有啊,也可以没有啊,这几个部分是一定少不了的。
25:11
那么具体每个细节呢,咱们都讲过了啊,那么在这几个里边,这个重点的啊,需要大家关注的就是返回值类型,还有呢,诶行参列表。啊,大家呢,刚开始呢,处理这个问题的时候呢,到底一个方法要不要返回类型呢,是Y呢,还是说有类型呢?啊行三要要行三呢。是吧,这个呢,需要大家多去思考。哎,见得多了呀,其实你自然而然的就有感觉了。啊,诶反问类型刻画就是你调用完以后呢,你是不是需要,诶给我一个结果啊,形态列表呢,就是你在调用这个功能的时候呢,诶你是不是会有一些不确定的内容。你要有,你就以形态列表的方式去表达这个不确定的就可以了。这个呢,是咱们说的这个重点的这个问题啊,好,那么结合着它呢,我们其实法律类型这块呢,就提到了一个关键字叫做return。
26:02
哎,Return关键字的一个使用。啊,这块呢,大家稍微的关注一下就可以了啊好,这是我们说的方法,这就完事了啊。好,下边这个再谈方法呢,我们提到这样几个概念啊,第一个呢叫重载,重载呢叫over。Load是吧,哎,Load加载的意思啊,哎,这里边呢,其实我们先其实就两个事儿哈,第一个呃,你得先知道什么叫方法的重载是吧。哎,相当于呢,叫方法的重载的一个要求啊,我们融合成了一个画是吧,叫。两铜。一不同。两同事。同一个类。下端方法名,哎一不同。哎,行参列表不同,包括参数的个数不同。或者类型不同。对啊,这个大家一定得清楚。啊,你得能够说出来的啊,好,这呢就是一个概念啊,咱们其实讲这个方法重载的重点啊,并不是说非得要引出这个概念。
27:05
哎,不告诉大家这概念呢,其实你也正常也会用。哎,咱们讲它的主要目的呢,其实呢是想,哎知道呢,就是我们编译器,或者我们在写程序的时候呢,是如何确定的一个。啊,具体的方法。或者叫我们在这个写这个,这个叫什么调用方法时是吧。哎,如何确定?呃,调用的是某个。来制定的方法呢?是吧,这是咱们的重点哈,诶我们这里边儿就提了,首先呢,你要说我就看方法名这个事儿,你发现不靠谱。呃,因为呢有重名的是吧,哎,所以我们哎怎么去确定呢,首先第一个点呢,是不是先哎通过这个方法名来判定。但是呢,方晓明这块呢,不靠谱,因为有重名的,所以我们接着看。哎,行参列表,所以呢,我们就要求啊,你方尔明一样的这种方法呢,行参列表一定不能一样。
28:00
这尿一样了,这就调不了了是吧,不知道是哪个了啊,诶,所以编译器呢,就通过它呢去判定,诶那么这些方法之间呢,同名的列表不一样呢,这不叫重载吗。就这个概念,也就是说呢,我们在声明方法的时候,你千万不要是把方法名和现在表都写成一样了。那这个呢,我们编译器呢,就认为你这个是同样的方法。哎,注意一下啊。啊,这呢,其实这个事儿呢,实际上是我们它的一个重点的一个意义啊。好这就过了,然后下边呢,叫可变个数形态的方法啊,这个其实嗯,没什么难度的是吧,就是你在这个形态列表里边呢,诶,你需要有一个类型啊,这个类型的个数呢,不确定。啊,这个你就通过这个点点点的方式呢,诶去声明回头呢,你需要几个int呢,你就传几个int就行了。啊,这就是一个新特性啊,这个不难,以后呢,咱们呃调一些呃API的方法,或者我们自己在定义一些方法的时候呢,诶会出现我们定义这样的结构,哎,到时候我们再熟悉一下就行。哎,像这种知识点的话呢,大家听过之后呢,你就不用再特意去复习了啊,以后呢,遇到了遇到了你就看一下就行。
29:04
哎,所以大家你看啊,现在咱们讲面向对象也讲了好几天了啊,随着这个东西呢,越来越多,大家可能会觉得越来越累是吧。啊呃,那其实呢,呃,从学习的这个方法来上来讲啊,我觉得你就这样做就行哈,呃,以前呢,咱们讲第一章最后其实我提过这句话,可能有同学都忘了啊,叫今日事今日毕。哎,你就把握这一个准则就行,什么意思呢?就每天呢,大家晚自习的时候呢,诶或者我们练习的时候呢,你就整当天的东西,之前的这些东西呢,都不整。过去了就过去了。包括咱们还有插班的同学是吧,哎,你就整当天同学啊,就是你就研究当天的,整上几天之后,他呢,其实能够让你迅速的改变这个被动的这种局面啊。啊,你想这个,你说我前面我丢了好几年的东西,我想当天呢还补一补,你像你当天当时学的时候呢,你都没整明白是吧,都没整过来,现在呢,你不光要学会当天的东西,还要把之前的某一天某几天东西都得整明白。
30:03
这个事儿本身也不现实。是吧,以前你没整明白,现在你还想转的更多,那更不行了是吧?哎,那所以呢,你每一天都陷入在自我否定的过程当中,最后的结论说自己的这个智力水平不太行是吧?哎,其实不是这样子的啊,诶,因为咱们讲的强度来讲,稍微的还是要大一些的。啊,那你要做的事儿呢,其实就搞定当天的东西就行,当天呢,比如我们讲了这个十个知识点啊,其中呢,比如说有五个呢是重点的,你就先整这个重点的。那些边边角角的东西啊,上课你注意听一下啊,晚上就就过掉了,先整重点的啊。然后呢,当天的这个里边呢,如果涉及到之前的这个内容了。啊,你比如说我们今天呢,写这个呃构造器写这个方法,结果呢,涉及到呢,说呃返回值类型这个问题了,你发现哎呀这块我整不明白了,那你翻回去你看一下,呃,讲返回值类型这块这个知识点。或者你找同学问一下,其实最快的就是你问他一下,他可能跟你说两句就完事了,你懂了,懂了你就接着写就行,诶所以当天呢,你遇到了之前的某个知识点你不清楚了,回去去整一下这个知识点,这个知识点前后的那些问题,比如说你反馈的类型不清楚了,形态列表其实还算清楚,形态列表呢,就不用看。
31:11
你就看你今天呢,需要用到的这个知识点就行了,每天都如此,那你相当于呢,这个重要的东西啊,哎,我说呀,你其实一个也丢不了。诶,所谓的重要的东西啊,就是后边翻来覆去会用的,那既然每天都翻来覆去要用,那你每天呢,不会的时候你都会去看,看了几遍之后呢,自然而然你也就记住了。那不重要的东西呢,不重要的东西呢,一方面你可能当天也没学明白啊,另外一方面呢,你可能学了以后呢,后边也会忘,反正他也不重要吧,后边忘了就忘了呗。逛了以后呢,后边偶尔的在一个场景中遇到了,遇到了我再去看一下就行了。哎,所以呢,大家重点一定是当天的内容啊,像这个内容的话呢,我们学过去之后呢,后边呢,我们相当长一段时间之内,我都用不着。所以你晚上你要花半个小时去研究它,那就完全没有必要。好,这个就过掉了啊,然后下边这个呢,叫参数传递机制,它是一个重点啊。
32:05
啊,当然呢,也是一个难点。啊,咱们每天呢,其实只要写方法啊,你这个呢,有参数的,其实都是传递机制啊,都离不了它这个把结论记住。这个我们方法帽啊,第三个。啊,在这儿写的这个笔记啊,哎,这个呢,我们其实不光适用于咱们这个参数的位置,对于方法内声明这种局部变量来讲呢,也是适用的,只不过在方法内的时候呢,大家理解起来还是更容易一些的啊,对于这个参数这块呢,传递的时候呢,可能会有点懵啊,那你务必把这个结论啊记住它。啊,这个呢,我们称为呢,叫值传递机制了,参数传递机制啊,这个叫值传递啊。啊,就是呢,你存什么值,我们就传什么值。啊,这个呢,不用再去多唠叨了啊,把这个结论记住它啊,行,接下来呢,我们又提了一个叫递归方法啊,这个递归方法的话呢,就是方法自己叫自己了啊哎,其实相当于是呃,构成了一种隐私的循环是吧。
33:07
呃,递归方法构成了啊,隐式的这个循环啊,哎,那么前面呢,我们呃,讲这个递归方法的时候呢,最后还做了个对比啊,就是在我们能够使用递归也能够使用循环的时候呢。推荐使用。循环是吧,诶对啊,相较于啊循环结构是吧,诶递归操作啊,或者叫递归方法呢,这个效率呢稍低,而且呢,它对于内存的占用呢偏高是吧。哎,偏高。那正好呢,大家说反正我递归也理解的不是太好,那我用循环用的挺顺,那就用循环,只不过呢,在有一些场景下呢,我们用递归啊,其实比较简单。啊,你像我们写那个快排。啊,包括呢,我后边想便利指定目录,你这个到底有多大的空间是吧,你写好这个方法之后呢,你里边自己调自己,你发现很简单,就把这个操作给写好了。
34:01
哎,所以呢,就是编写的时候呢,我们的效率会高一些啊,执行的效率呢,可能相较循环呢差一些。诶,这块我就提到一个概念哈,一个呢叫编写的效率。或者叫开发的效率。啊一个呢,我们称为呢,叫执行的效率。哎,这个呢,是我们衡量的两个标准是吧,你像咱们呃这典型里边呢,比如像呃通常我们会说的哈C呀,诶C加加呀,传统的来讲哈,哎Java呀,哎再加个Python啊。是吧,诶如果从开发的效率上来讲呢,依次呢是。变高的。啊,越往后开发的效率越高啊这个是吧,这样个场景,然后从执行的效率来讲呢。哎,从传统的来讲呢,就是正好相反是吧。呃,就是这个执行效率来讲,C行C加没得说,那执行效率确实是很高的啊扎呢,我们现在通过像即时编译器这样一些结构呢,呃,让它呢,就是越来越靠近于这个C和C加加了,或者基本上现在属于差不太多的这种场景啊,呃,当然Python这块呢,就执行效率就最差了啊。
35:04
哎,这就整个这样的一个情况。包括呢,咱们写代码也是一样哈,有的时候我们写代码说为了减少冗余。啊,减少冗余的话呢,实际上是从开发的角度来讲啊,我们说呢,减少冗余了以后,你想调封装那个方法里边直接调就行,开发效率高了,可能从执行上来讲呢,没什么变化。啊,这个大家体会一下啊就行啊,执行效率呢我们需要关注,开发效率呢也需要关注。啊,也需要关注啊,OK。啊,这个是它了啊,过掉啊,下边呢叫对象数组啊,其实呢,说过了不是什么新的知识点啊,只不过呢,就是这个数组的。这个这个元素的类型啊,是这种类类型的。啊,就是我们写的这样的这种格式的。啊,比如说这个诶customer啊,诶这样可是的,这个呢就叫做对象数组,诶大家处理起来的时候呢,你小心一点就行啊这个呢,没有什么过多的要去强调的点了。好,下边呢,这两个关键字啊。
36:01
哎,这个呢,其实也不是太难啊,Package的话呢,其实就相当于是啊指明哎,我们创建的。啊,或者叫这样声明的吧,哎类哎所属的。包是吧?以后呢,我们再去这个写原文件里边写类的时候呢,诶,我们都要给他提供对应的包,因为这个类呢越来越多啊,没有包的话呢,这个太多了就乱了,不容易管理啊。啊,这叫package,然后import呢。叫导入是吧。什么意思呢?打包是吧,诶也是我们这个当前啊,这个程序中啊,或者叫当前这个类中。当前啊,哎类中啊,如果使用其他包。来下的这个类是吧,啊原则上。哎,就需要导入。啊,当然这里边儿我们提到了有特殊特例是吧?哎,除谁外啊。呃,一个是浪宝是吧,再一个呢是本,哎,本包这块呢,我们在这儿已经说过了,其他宝下熬包呢就不用了啊。
37:06
行,原来呢,我们都学了,去导入一下啊就可以了啊行,这个都比较简单了,具体细节呢,咱们课件里边也都讲课的时候呢,都说过了啊好,下边这个叫封装性啊,它呢也算是个重点了,而且呢,在笔试面试当中,关于这个面向对象的三大特征啊,问的还是挺多的。啊,其实很多时候呢,咱们这个面试的问题啊,他没有特别明确的说你是对还是错。当然你说错了,那肯定是错了是吧,但你说的也没错啊,但是呢,不同人的不同的说法呀,体现你对知识理解的深度呢,是不一样的。那尤其呢,在面向对象这块说,你是如何理解面向对象的?那你这个你想想整本书呢,有本书叫面向对象编程。呃,编程思想是吧,那好几百页呢啊,你现在面试呢,你能不能通过简短的语言谈一谈你对这个思想的一个理解的深刻程度。啊,你可能说的也没错,但是呢,你一说就知道你这个理解到什么深度了。
38:03
啊,每个人这个都不一样是吧,那么关于封装性这一块呢,大家咱们现在就讲了这一个啊,应该怎么去说呢。啊,怎么说这个封装性呢?哎,注意一定不要上来说,哎封装性啊,我是这样理解的。所以呢,我们在创建一个类的时候啊,把这个类的属性呢私有化,然后提供公共的get和set方法呢,去访问和设置。说呢,这就是碰撞型。没了。这个得打多少分?嗯,说的也不错是吧。对,打及格吧,可能还有点儿委屈是吧。诶,这个你注意啊,其实很多同学呢,在呃,谈到封装性的时候都是这样说的。啊,其实这个说法的话呢,哎,问题出在哪儿呢。诶这个问题就出在呢,就是昨天我举那个例子一样哈,诶说这个这个是个徐亮是个好人是吧,姚亮是个好人,这个好人的话呢,他其实有好多的展示的是吧,你不能就说他扶一个老太太过马路了,说他就是好人,然后没有了,说他是个好人,说这个事儿之后呢,没了。
39:12
那你就显得就太单薄了是吧,哎,你只能说呢,它是一个好人的一个体现之一是吧,那封装性的话呢,说它的体现有什么呢?你可以举很多的例子,其中一个例子是刚才说的这个例子。哎,所以它只是一个举例而已啊,那么如果说这个封装性就对等于某个东西。啊,那怎么讲呢。啊,这个咱们讲课的时候呢,我提到过了,大家呢,也建议你要这样说啊。怎么体现封装性,这个咱们一会儿再说这个高大上的问题啊,先说这个事儿啊,说呢Java呢,它规定了四种权限修饰。哎,分别对应的呢,是这几个。啊,对吧,来分别对应是这几个好,然后接着啊,还得补充一句话说呢,我们呢,使用这四种权益修饰啊,来去修饰类和类的内部成员。当这个成员在被刁的时候呢,体现了一种可见性的大小。
40:03
哎,一说到这个可见性呢,大家脑海当中就浮现,哎,咱们课件里边不是有一个盒子吗?盒子里边呢,这个我就画了好几层是吧,诶你不同的这个结构呢,我们就用不同的权限去修饰,然后你看到的这个层级呢,就不太一样。啊,或者你夸张点,这个脑海当中你浮像一个那种,有的卖那种透视眼镜的是吧。啊,十块钱的呢,能投一层。100块钱呢,投两层是吧,1000块钱的呢,看到骨骼了是吧。诶对,就就就有层数之说是吧,诶这个呢,就是相当于我们通过这些修饰呢,就是它达到隐藏的效果,但是呢,你这个层级不一样,隐藏的程度不一样。哎,这个呢,咱们就称为那叫可见性的大小了。OK啊好,这两句话往这一摆,非常精炼的,就把封装性呢,诶在我们代码层面这个体现呢,其实就说的。可以了。啊,对方呢,可能会觉得说,嗯。可以是吧,哎,最起码的就奔着80分以上去了啊,哎,这个完了以后接着干什么呢。
41:04
接着可以举例了。接着可以举例了啊,哎,你看这个你不是说完了吗?举例举例的话呢,哎,这个呢,你就直接呢,就说哎,我们下边的这样三个场景就可以了。这个场景呢,就是你就不用说的那么细了啊,什么意思啊,就是比如说第一个点啊,你就直接说私有化属性功能的概方法就行,你不用说呢,呃,我现在呢,呃声明了一个animal的类,呃,Animal里边呢,我声明了一个内是吧,就不用说的这么细了啊。况且的话呢,你就是举例也不要举animal。也不要举。也不要举男人女人是吧?咱们上课的时候呢,举一些这样的例子呢,是为了形象哈,你都面试了,你还这样说,面试官也开发过,你也开发过,你俩应该举点高大上的例子是吧?上来呢,比如举举API里边这些例子啊。你项目里边的一些例子啊是吧,所以呢,你不要举那些形象的例子,他又不是需要你教他是吧。
42:00
哎,这个注意一下啊,以后我们还有这样的场景,以后再说啊好,第一个呢先抛它,第二呢就抛它。那这块呢,其实已经啊,这个分数呢,就奔到90分以上了。啊,或者已经达的就很高了哈,诶如果呢,你要是还想说的话呢,你再给他提炼一下是吧,说封装性的话呢,其实这块呢,就体现了我们在程序设计当中的,呃,一个呢概念叫做高内聚和低耦合。这立马就上价值观了,就是吧。这个是不是一下就拉的,这个就比较高了是吧。诶,所以这块呢,就是你要再往上拽的话呢,呃,就提到了我们程序设计当中的这样的这个设计原则啊。拉回来。啊,这个呢,就是咱就是说就上这个。上理论了是吧。上层次了啊哎,这个你就把这两个抛一下啊,诶高那句当然呢,这两句话呢,大家可能现在理解的有的也不太也不太到位的是吧。啊,这个上理论,这是我们这个叫,哎程序设计的这个原则啊,原则之一吧。
43:02
诶主张呢,叫高六级和第五核啊,高内句,内句呢,他指的是内部的细节啊,诶比如说这个类的内部细节呢,我们这个自己来完成,不许外界干涉,这个大家可能说的话呢,你也说说不太清晰,或者说你到那个时候一紧张,这个可能也忘了是吧,所以高内句这块呢,你可以这样的,换句话去说哈,所以呢,就是我们这个这样写哈,说这个Java程序呢,诶咱们就通常。啊,是不是以类的是吧,呃,这个单位呈现啊,或者以类的这个形态吧。啊,呈现。形态啊。呈现。现是吧,就相当于呢,咱们这个在写这个具体的程序需求的时候呢,我们首先呢,把相关的这种需求呢,是以类的方式呢,先去呈现了,然后呢,相关的这个功能是吧。哎,是不是封装到。哎,这个方法中啊。诶,所以这块呢,我们所谓的这种封装性啊,其实你可以考虑呢,就是它体现了就是我们在设计程序的时候呢,首先啊一个一个的类,然后呢,类里边呢,我们去设计一个一个的方法,实际上呢,这块呢,就把功能都往方法里边去做封装,这个就相当于对内来讲呢,我们都有这种具体的封装的这种形态了。
44:14
好,这个呢,实际上对内的这样的一个体现啊,然后对外的话呢,诶我们这呢叫的耦合的,耦合的话呢,就是仅对外暴露少数的啊方法呢,供外部使用啊,尽量呢方便啊,供外部使用就让外部去调用了,所以在这块的话呢,我们相当于是诶给。啊,这个相关的这个呃方法啊,或者是这个类。哎,去设置哎权限。啊,设置这个权限啊,然后呢,体现是怎么着呢把啊该隐藏的。嗯,隐藏起来是吧。啊,隐藏起来。哎,然后呢,该暴露的暴露出去。诶,起来是吧。嗯,该暴露的。
45:01
哎,暴露出去。诶这样就可以了,哎这呢就是你你要说这个高能级和低耦核呢,你不太好理解的啊,你就把它,呃,用这样的相应的这个话呢,去替换一下啊,我觉得也可以啊。好,那么这个要输完之后的话呢。那基本上面试官呢就比较满意了是吧,诶点点头说呢,那就下一个吧。就可以了啊。对啊。呃,最好呢,就是你在抓住相关的问题的时候呢,这个你给他一下说透了以后呢,其实好多呢,面试官呢,他就不想去再难为你了,是吧,你就接着就谈下边这个知识点啊OK。好,这个呢,就封装性,咱们这个已经上的高度挺高了哈,后边呢,我们还会讲继承性,还会讲多态性啊,你也要把它拉到一定高度,那就没毛病了啊。好,那么下一个呢,叫做构造器哈,这个构造器的话呢,其实就是类的一个成员啊,其实不太难是吧,这个大家主要把握的第一个就是,嗯,你最起码你也知道呢,如何去定义哈。啊,这个你得会啊全。
46:01
权限修饰符。哎,全修服,然后后边呢。呃,类名是吧。然后这块呢,有一个小花叫行参。列表是吧,哎,这就完事了啊好,然后接着你知道这个构造器的作用啊。对,第一个位置呢,我们是,哎,这个一定要注意是搭配上。哎,这个new啊,然后呢,用来创建对象啊,然后第二点呢。对,我们可以用来初始化我们这个,呃,对象的这个产业变量是吧。哎,这样就可以了啊。好,这就过了啊,这个没什么难度了,哎,三个小知识点,第一个呢,还是比较重要的。因为我们在生命一个类的时候呢,这个属性呢,通常都少不了了,那你在多个位置呢,都可以去赋值,首先你得知道在哪些位置能赋值。然后在实际开发当中,你得看看适合在哪些位置去复制。然后再去看呢,说诶到底最终这个值是多少,它有一个复制多个位置的一个先后顺序了。
47:03
那这个咱不就写到这儿了吗。啊,这个呢,就诶比较清楚啊,大家把这两个问题呢,给它弄清楚啊,这就可以了啊好,这个扎病呢,这就是个概念啊,这个也不太难啊,就满足这样特征的,我们说呢,就是个扎病就行了啊。啊,这个U类图的话呢,这个大家呢,诶去熟悉一下就行,以后呢,我们写代码呢,如果给了你个类图能看得懂就行了。诶这呢,就是整个我们这一章的这个内容。哎,重点的话呢,还是在方法这块。你要说这个,呃,理解上深度上的,理解深度的不同的话呢,诶封装性。哎,毕竟我们说是一种面向对象思想啊,设计这种程序的一种思想,哎思想呢,哎就是封装性啊,怎么去体现的啊。好,那么接着我们看一下企业的这个真题啊。这第一个啊,面向对象,面向过程的理解。上面已经说过了是吧。这不就略了啊,他们都属于程序设计的不同的思路啊,啊,一个以什么为单位,一个以什么为单位,怎么怎么样的啊,这个咱们都说过了啊,说Java当中的引用类型的有几种。
48:03
零类型啊。还是阿里校招呢哈。哎,这个咱们写是吧,累。数组,这是咱们目前接触到的是吧,后边呢还有接口。这个呢,是我们传统上来讲的最典型的三种结构啊,哎,那么还有呢,叫哎枚举。注解啊,记录是吧,哎,其实你在这块也能看到啊,比如说我们在这右键啊,就nu一个啊,这个呢,虽然叫class,但是这块你能看得到啊,是类啊接口啊,记录啊,枚举啊解啊。哎,都有啊。好,这是这样的,说类和对象的区别。略了啊。对,上面不是写了,这个是抽象的概念上的定义,这个是具体的一个一个的它的实例是吧,OK啊。啊,面向对象,你解释一下项目当中有哪些地方用到了面向对象。这个呢,你应该反问句,项目中哪些地方没有用到面向对象呢?
49:02
是吧,这不是各个地方其实都是面向对象啊,所以在面向对象这块呢,其实有一句话哈。大家不知道听没听过啊,叫万事万物。嗯,接对象是吧。有点这个。是吧,佛家的这种这个这个空即是色,色即是空是吧?对,就是感觉很抽象的这种概念啊。怎么对,就是这句话你说出来,你一定要负责啊。他要问你说这个项目中哪些地方用到面向对象,你直接抛出去,万万我接对象。他经常会问,那你说一下怎么理解他是吧?诶,有可能面试官呢,他答的可能也不太好,但是呢,你答的怎么样,他能知道你答的好不好是吧,你答的不如他,他就得你看比较low,你答的比较好呢,说诶我也学习一下是吧。哎,那么这句话的话呢,大家现在呢,咱们还理解不好。哎,因为什么呢?咱们现在见的东西还少,面向对象都还没讲完呢,你怎么能理解万事万物皆对象呢,是吧?
50:01
诶这个诶我们得一步一步的来啊,所以这个问题的话,等后边呢,呃,咱们积攒一些素材,在哪些地方有素材的时候呢,我会给你抛出来。那我可给你抛出来啊,所以这块呢,解释在哪用到了,目前来说的话呢,就是我们都得体现是吧,以类为基本单位啊,去创建类诶封装具体个功能,然后呢,你再去实现这个功能的时候呢,我们再去造对象,诶所以说呢,大量的地方都是面向对象,诶先这样给他说一下,然后这句话呢,咱们后边呢再慢慢来啊。好,接着说呢,关于内存划分的哈,划分成几个区域,详细说一下,这咱们上面这不也都讲过了。哎,下边呢,说对象存在内存哪块区域里。对。哎,对空间是吧,哎对的啊,哎对象能放在占空间吗。不能是吧。对啊。这里边儿呢,其实有一个高大上的一个问题哈,就是我们在这个,呃,实际开发当中,对象呢,肯定是放在堆里了,但是呢,渐进式的会有一些技术啊,就是想把这个对象放在站里边。
51:04
啊,为什么要往站放呢?因为堆空间里边是不是存在JC啊。啊,然后占空间的话呢,没有JC,就是你往这一分配,你不用的时候直接就弹出了。它的进出,进出会很很频繁,会很快。啊,那么这呢,就有一个技术呢,叫做站上分配。诶你看毕竟这是阿里问的嘛,是吧,但是这个事儿的话呢,在基础阶段我们实际上是不会讲的啊,那这个呢,只能说是在GM当中,而且G当中还得讲比较高级的内容的时候,我们才会说这个站上分配的问题,所以你就这么一听就完了啊。哎,现在呢,提到对象呢,你就知道还是在堆里边的啊。哎,战上分配那个事儿呢,是为了能够更好的去做一些优化,来提出来一种想法是吧,这个想法的话呢,也得需要具体的虚拟机落地来实现才行。很多虚拟机没有实现。啊,所以你就当成是一种算法,一种思想啊,一种想法就可以了啊。就过了啊。好,下边说这几个表格化的作用的区域,这咱们课件里不都有吗?
52:03
啊,这个略了啊说呢,方法能不能从public换成private,为什么。没想过这个事儿是吧?嗯,能不能。不能。没方法。这前面是能运行的哈,我改成叫private。啊对,这呢就是一个普通的方法了。是吧,哎,这个方法的权限呢,比较小。啊,仅此而已啊,哎,所以呢,哎说能不能改呢,那得看你怎么讲啊,哎,这要说能不能改是能改的啊,哎,但是呢,改以后是吧。呃,它就不是当初那个may了,呃,改以后呢,呃就不是啊,或者叫就不能作为程序的入口了。哎,入口了,哎他呢,就只是一个。呃,以一个,哎普通的这种方法,哎,你得主动的去调它啊才可以啊。
53:00
行,这个就说完了啊。哎,下边说这个构造方法和普通的方法有什么区别?构造方法就是说的构造器。啊,普通方法就是说的我们那个method啊,有什么区别。换句话说呢,也没什么共同点呀。是吧,哎这个呢叫哎没有共同点啊。对他们的作用呢,是完全不一样的啊。这个从我们编写代码的角度,构造器是构造器,方法是方法,声明的格式都不一样。啊,声明格式还有这个作用啊,都不同啊。嗯,但其实呢。对吧,这个就看怎么讲了啊。诶,你看咱们在从编写的角度哈,编写代码的角度。啊,毕竟呢,咱们这讲企业面试真题呢,其实我们这个角度呢,就不光能立立足于咱们Java基础了,是吧,应该立足于可能整个我们这个大家学完后边的一些项目啊,呃,一些高级的框架啊,包括呢,我们甚至说呢,学过像底层的GM啊是吧,这样的场景,我们把它答的更高大上一点啊,那么从这个角度来讲呢,哎,我们说编译代码的话呢,他们完全没有共同点。
54:12
在一个类当中,构造器是一个成员,方法是一个成员啊,然后呢,从我们这个字解码的角度来讲呢。呃,最起码文件的角度,其实也就是我们要把这个文件加到内存中,在内存中的角度,或者叫GM的这个角度了啊,哎,那么我们说这个构造方法呢,或者叫构造器是吧,它呢会以诶我们说叫in it这种方法的形态去呈现。哎,呈现是吧。哎,呈现啊,那么这呢,其实我们就把它看成这不是一个方法了吗。哎,这样啊,哎,这就看成是个方法了,然后呢,一般的方法呢,也是方法。那就都是方法了啊,哎,那个方法干什么用的呢?就是用来初始化我们当前这个对象的。啊,方法的形态来呈现啊说呢用于。
55:02
哎,初始化,呃这个呃对象是吧。哎,这样的功能啊,这个注意这个方法名的话呢,它就叫这个名。啊,因为呢,你这个类呢,呃,构造器的名跟类名一样了啊,诶所以呢,这块呢,也不用刻意的去写上类名,它就叫这个名,你看这个名你就能暴露出来,它就用来初始化了。就initial。初始化的意思是吧,嗯,OK啊。行,这就过了啊,然后下边说构造器能不能被重载。可以是吧。对啊,以后呢,我们会讲重写构造器,注意不能重写啊。能重载啊。说无三过道器和有三构造器的作用和应用。哎,其实就是用来初始化的是吧,无参的话呢,哎,虽然说无参了,你比如我们刚才写的这个,诶回过来啊,比如这个user吧,这这是个无参的,你也完全可以在这里边,是不是就把这个A给它写死啊。也可以的是吧。诶,所以这里边儿呢,也照样可以初始化我们这个属性信息啊。
56:00
啊,所以这个呢,我就略了啊。下边关于属性,属性赋值乘以变量,局部变量的区别。咱们刚才复习的时候说了六个点的区别了,是吧。哎,六个点的区别,这不是在这儿吗。嗯,这个这儿是吧。这不有六个吗?哎,都可以说啊。好,这个就略了啊,好说这个变量赋值和构造方法加载的优先级的问题啊,这个呢指的是显示赋值啊。跟够大气的,这个赋值谁先啊?哎,变量显示负值啊,先于。先于啊,构造器中的这个赋值是吧。哎,这个注意一下啊,啊,这个你怎么证明啊。对,如何证明啊,这个呢,你说自己测的漏一点是吧,说我看的。诶字解码文件是吧,诶我呢发现呢是他写的是吧,这不就更高级吗。
57:00
哎,OK啊行,这呢就是整个我们关于这一章的这个相关的问题,OK啊好,所以我们先说到这儿。
我来说两句