00:00
好,那么构造器结束以后呢,我们再来看一下这个最后啊,咱们关于这章的一个内容,这个内容的话呢,其实是几个小的内容呢,合并在一起了啊相当于是呃,上面呢,主流的内容之后呢,有几个小补充的内容,诶补充的内容里边呢,呃,其实还是挺重要的啊来我们分别呢去看一下,首先呢,第一个问题呢,相当于是一个总结的事儿。啊,总结的是这个类中呢,我们说呢,可以有属性啊,当然这个属性呢,咱们目前呢,只考虑呢,叫实例变量了。哎,怎么叫实力变量呢,咱们现在写的呢,其实都叫实力变量。举个例子啊,你看我们首先在这块呢,诶我写个叫user是吧,User test写它吧,然后在这里边呢,我把这个class,这个user呢,我就写到这儿了啊好,那么user里边呢,我们可以去声明这个属性啊,比如说呢,String类型的name int类型的age,诶像这个的属性呢,我们要严格呢,再给大家去起个名的话呢。当然呢,我们说呢,本身属性叫做是,呃,这个叫成员变量了是吧,都是成员了啊,但目前的这个成员变量呢,其实还可以再进一步的,哎,我们把它呢,现在称为呢。
01:05
那这个就直接写个或吧,称为呢,叫做实例变量。这个咱们前面呢,其实我提过这个事儿啊,但是大家可能印象有的不深了,就是这两个属性啊,咱们还可以进一步的把它叫做实例变量啊。实力什么意思啊?哎,实例就是对象的意思是吧,哎创建类的实例,哎不就是创建类的对象吗。哎,所以实例就是对象,那实例变量呢。就是你这两个变量归具体的对象所有。哎,我在这儿啊,上边咱们写个没方法啊,我这儿呢,U41个U1啊,我你一个U4,哎,你这个U1啊,是不是有一份这个实例变量啊。好,我再用一个U2。哎,那么你这个对象呢,是不是也有一套这个实例变量。所以呢,对,我们就把它叫做实例变量,就是每一个对象,每一个实例有一份儿。
02:00
哎,就叫做实例变量了啊,哎,那么相对应以后我们还会讲非实例变量了。哎,就是以后我们讲一个关键字,这个关键字呢,叫做static啊。哎,只要呢,这个变量你看用带这个修饰的,它就不是实例变量了。哎,它叫做静态变量。或者跟它对应的叫做类变量啊,那这个变量特点呢,就是这两个对象哈。共用着一个。啊,这个事儿呢,咱们以后再说啊,咱们现在呢,看到的这个变量呢,都没有用四代这个修饰好,那咱们现在主要考虑就是这样的变量。它的一个赋值的过程。那就是先哪个后哪个是吧,诶复制过程咱们等一下再说,先考虑一下在诶刚才我们写的这个实例变量当中,有哪些位置可以给这样的属性赋值呢。是吧?哎,大家刚才提到说有显示负值是吧,这个咱们可以先先写一下啊,比如说显示负值这一个还有别的位置吗。
03:02
哎,构造器中。赋值是吧,还有吗?诶好了啊,通过这个方法赋值是吧,比如说set方法,嗯,还有吗。哎,对,通过方法复制,哎通过,哎这个咱们这样写吧,通过叫对象。哎,点哎这个方法的方式复制。哎,方法,哎这个的方式啊。呃,还可以呢,通过对象点属性。当然这个前提条件就是你这个属性呢,别私有了啥的是吧,持有了可能就掉不了了啊。哎,当然呢,你要是没有权限的影响,我们也可以啊,通过对象点属性的方式复制。还有吗?就比如说代码块,这个咱们还没讲是吧,以后再说哈。其实大家丢了一个,是不是还有一个默认值啊。诶,还有一个默认复制的是吧。没问题吧?好,那么这块的话呢,大家就写了这样好几个点啊,这呢也是咱们目前为止,哎,能够给这个所谓的实际变量复制的这么几个地儿。
04:07
好,那每一个呢,咱们给个标号吧,这个呢,我写成叫一。哎,这个呢,叫二是吧。哎,这样啊,然后这呢,我写个三。哎,这呢,写一个四。啊,这个呢,我们也给一个吧,诶五啊,哎这样了,好,那么这几个位置呢,咱们都知道了,那下边的点呢,就是说诶这些赋值的位置啊,有没有先后顺序之说。对,因为这个顺序的话呢,它直接会影响我们这个变量到底最终的值是多少是吧,比如你这个位置先你这是呃是这叫零,然后这个呢,改成五了啊,这个改成六了,到底是先改成五还是先改成六呢?啊这个我们需要呢关注一下了。好,那么像这种呢,诶,我们接下来呢,就要做测试,看看他到底谁先谁后了,你也不用呢,说去看一下官方文档,谁先谁后,直接一测试就出来了啊,但是测试之前呢,你最好呢,先自己猜测一下。
05:02
是吧,其实好多这个,呃,科学上的发现不都是这样嘛,就是你先大概猜着他怎么着,然后呢,你去做实验,去测试一下是不是这么着是吧,是这么着,诶写这个论文了,不是这么着,哎,你再再换是吧,最后你看它应该是怎么着的,有没有一定的规律性啊,那这个呢,咱们先猜测一下它的顺序是什么样的。默认第一个是吧,然后。第二个。啊,第三个。第四个。四跟五怎么着?并列的就这样写是吗?嗯,就这样呗。就是这个呢,就是四跟五的话,相当于并列关系,这意思啊。还有别的顺序吧。大家都是这个直觉吗?呃,有没有觉得这个二跟三可能会颠倒一下呢?可能是吧。呃,有可能啊,行,这个一的话呢,应该没有什么这个意外,大家应该觉得都是最开始的是吧,诶咱们其实前面也做过一些这个,呃,画这个内存图的时候也说过这个事了啊,诶默认的一般都是刚开始的时候就有的,好那咱们呢,就按照写的这样一个顺序,咱去做一个测试啊,证明一下它是不是这样的一个顺序了。
06:18
好,那回过来就看咱们刚才写的这个程序了啊。啊,这个我就先把这个就删掉了,呃,看看咱们怎么去证明啊,呃,首先这块呢,我们去new这个user啊,此时的话呢,咱们先去打印一下这个U1.a吧。哎,咱就一先来说了啊,这时候呢,你打印的结果呢,它就是零。哎,这咱所谓的默认值。好了,然后接下来的话呢,我把这个呢,给它赋一个值。改成一了啊,此时的话呢,我们再去run。你发现呢,它就是一。那说明一呢,把那个零给覆盖了。OK啊好,那么这时候呢,我们说的一,后边呢是二。但是没说这个三在二后边啊。那下边我们要证明的是不是这个三和二的关系。
07:00
那有可能三在二的前面,也可能三在二的后面啊。好,那这个呢,我们怎么去证明呢。是不是你得整个构造器了是吧,好public啊,这个user咱们给他先留着一个这样的一个空参构造器,哎,我再写一个啊呃,User这呢,我一个A。然后呢,在我这个,呃,构造器里边呢,我给这个A呢赋个值。这样啊,好,咱们再去创建一个对象。啊,User好,这个位置我写了个二。哎,相当于这个二呢,就给我们正在创建的这个对象的属性A值呢,附了一个值叫做二。那我们现在关注的就是它在赋值的时候呢,应该也会有这个值的一个赋值的过程啊。关键的就看这个结果是一还是二了。对啊,如果要是二的话呢,那说明二会把一覆盖是吧。因为咱们刚才说这个事儿啊,怎么着呢,就是每个对象呢,这不都有一份这个属性嘛,诶所以刚才这个事儿已经过去了啊,诶我们在给这个创建的时候呢,他也应该会有这个一的复制的过程,关键就是看谁先谁后。
08:02
来,我们去做一个rap。好,那么结果是二啊。哎,那就说明呢,咱们是构造器的这个赋值呢,是不是要晚于这个显示负值了。对,证明出来了,所以这个顺序呢,123目前是没问题的。啊,这个顺序是没问题的,好了,然后接下来呢,是这个四跟五,这个四跟五啊,我说呀,其实都不用测。咱们通过理论上呢,都可以把它解释清楚。怎么解释啊?我说四跟五一定在123的后边。对的啊,对。对啊,哎,大家说的对的,你看这个构造器呢,是123里边最后一步了啊,我们把构造器调用完以后呢,这个对象是不是才创建好了。哎,那么创建好对象以后呢,你才能够拿着对象去调了,你想让他靠前,他也不能靠前,呃,因为这个这个之前的时候都还没有对象呢,是吧。OK啊好这呢,就我们说的这个过程,哎,如果这块的话呢,我们在这儿,哎,我打一条这个星的话呢,其实这块想说明的点就是它的上面呢是对象。
09:06
创建的这个时候是吧,哎进行的这种复制操作,而这个呢,是对象创建以后的相关的操作。那常常呢,我们把对象创建之前的这种操作呢,都称为呢,叫初始化。哎,初始化,所以这块呢,诶,我要是当然你写赋值也没问题啊,只不过呢,我们想更严密一点,那就写成叫默认初始化啊显示。初始化,然后诶构大器中,哎初始化。诶,然后后边这块呢,诶构造器这块执行完以后,这个对象呢,就创建了。啊,就跟说一个小孩呢,就从这个母体当中就出生了是吧,然后接着这个小孩呢,自己可以调属性啊,调方法呀,这种方式呢,去复制。啊,而且那下边咱们还有这个操作啊,说那以上操作在对象创建过程当中可以执行的次数如何呢。我们造一个对象啊,123啊四五都各自可以执行多少次呢?
10:03
哎,这里边我们发现的这个123是不是他们只能。执行一次啊。哎,对的啊。哎,只能执行一次,就是我们现在要创建对象啊,这里边呢,这几步走完以后呢,这个就完事了,对象就创建好了,你想再回过去回一下炉不行是吧?哎,这个已经出生了是吧,这下啊,然后呢,接下来我们这个四跟五呢。根据你的需要是吧,啊,你说我下边呢,我这个U2是吧,第二哎这个呢,咱们没有去限制他的这个呃权限啊,所以我直接可以去调,我改成三了。诶,改成一个三啊,改成三以后不满意,我还想改改成四,诶你可以多次去调用。诶,通过方法调也行啊,这里我就没有写具体的这个方法了啊啊这块呢,是可以多次执行的啊,这个就是我们的四和五。诶,OK啊行,保存一下。好,那这个呢,我们就写完了哈,诶这个写完以后呢,你回过去,你看一下咱们这个前面讲的这个构造器写的这个第三个这个题目,这个题目里边呢,你看我们这个呃,Customer啊,这customer里边呢,我们给这两个属性呢,在构造器当中复制了。
11:13
敷完折以后的话呢,我们也没有给他提供晒的方法。这个权限呢,还很小。啊,那其实呢,就意味着我们没有办法出了这个类之后呢,直接掉属性不让。要塞的方法呢,没有?那就相当于是不是断掉了这两个事儿。不让你调方法,没有S方法属性呢,也是私有的,也调不了,呃,相当于呢,我们刚才针对于这两个属性来讲,它只能是在前边默认呢,这叫not值显示呢,咱们也没付构造器里边给付了。是不是在这付的吗?哎,那就相当于呢,这两个属性呢,一旦你设置好以后。就不能再修改了是吧?哎,因为他这不就执行一次嘛,后边呢,没有这俩。哎,这个体会一下啊,那对于这个抗的话呢,诶我们还挺好的啊,构造器里边没提供显示,也没有默认值是个no,诶我专门提供赛方法了。
12:06
那这就挺好了,这个时候呢,你就可以多次去调了,你说我这个人有个账户,账户不要了,我想重新付一个,那就重新再调一下set方法。哎,再去重新给他设置一个账户就可以了。OK啊行,这个呢,就是我们说的整个这样的一个概念啊,嗯,这个呢,我们是通过这个测试呢,来咱们看到这样的一个场景。那是没有任何问题的啊,那如果大家有兴趣的话呢,咱们也可以搂一眼自解码文件。诶让大家呢高大上一把是吧,这个四码文件怎么看呢?诶原来咱们说过呢,就在这里边去找这个四页码文件了,但在这块你找的话呢,其实你看的也不够清晰啊,咱们试图找一下。哎,在这个下边我们刷新一下,哎,这不就有这个user了,打开。这好像也看不出来什么是吧?诶这个呢,是已经给我们反编译了啊,反编译成整个我们这个跟咱们写的这个原文件呢,差不太多了,诶不能这样看了,诶那怎么看呢。
13:01
那这样看啊。嗯,大家呢,首先呢,你要想使用刚才我说的这个工具啊,啊,你得装一个插件啊,在这个settings里边。诶,过来啊,咱们收起来这儿呢,有一个插件啊。这个插件的话呢,这个就是插件市场,诶在联网的情况下呢,在这个位置你就可以呢去搜了,诶搜呢这个叫接class lab。来收他。哎,收到它以后呢,你安装一下。诶,我这提前已经装过了啊,诶就装它就可以了,好装完以后哈,诶装完以后的话呢,这个呢,就用不着它了,收起来了啊,然后呢,针对于我们这样一个程序,这个程序呢,你注意刚才呢,我们这个插件呢,是用来解析自解码文件的,那就意味着我们这个程序呢,你最起码是不是得编译一下。其实我刚才都已经运行过了,运行之前肯定会编译了啊,对,所以我就不用再去编译了,但是你要说有可能没编译,或者说我这个代码我就改过,呃,在这块啊。
14:00
它有个build。又在这块呢,有一个叫重新编译吧。啊,就是我不管你这个文件有没有运行过啊,诶有可能没编译过,或者说你这个代码有更改过,我就让他重新的再去编译一下这个文件啊,点一下啊,这不就重新编译了,这时候这个四星码文件跟你这个代码呢,这块就都是一致的了啊哎,那么这个时候呢,你把光标你放在哪,我放在这儿,我就看的是这个四星码文件,我把光标放在这个里边。哎,其实你看的就是这个词解码文件了,咱们现在想看的是它啊。所以我把光边你就随便搁一下,只要搁到它这个里边就行,然后在这个view这块呢,你看刚才我们装完插件以后呢,它就会有这样的一个选项。好,我点一下。然后呢,在这块呢,就呈现出来,关于咱们当前啊,你别看这儿啊,这不准这是说这个文件的,这个文件里边,我们目前看的是咱们这个user这个类是吧。哎,这不就写的是U吗?好,然后呢,下边呢,有一些选项啊,这个以前我都看英文版的,看那个中文的某一下有点不太适应是吧。
15:01
好看这儿了啊,所以呢,我们打开这里边儿有个方法的位置。这块大家呢,可能就会有一些信息呢,有点颠覆你的这个认知了哈。咱们知道呢,在这个类里边呢,咱们生命有属性,生命有构造器,没有写方法是吧。然后你在这块你查看的时候,你发现的这个字段啊,这个字段就咱们说的这个属性了,你一点开是不是有俩。呃,然后这个属性你就不用管了啊,这个呢,不是我们这个说的这个属性了,这个字段呢,就是field的意思了啊,然后构造器呢,它没有这个构造器的位置方法这块呢,倒打开有两。没问题是吧,诶注意啊,这个呢,咱们复习的时候呢,我再稍微的说一下啊,就是咱们写代码的时候呢,这叫构造器,咱们还强调我说构造器跟方法没什么关系,构造器是构造器,方法是方法。对吧,对,但是呢,我们这个生成的自建码文件当中哈,其实呢,它就把构造器呢,转换成了一种特殊的方法了,这种方法呢,就叫做in方法。
16:04
哎,就是这个引你的方法啊,哎,有同学说,哎是不是这个就对应的是我们一个构造系,这个是另外一个呢。说的没问题,但是呢,不够精准。呃,先说一下啊,我这有俩构道器,所以呢对应的是这俩,但是呢,也不完全就等价于啊,什么意思,你看啊,我把下边这个打开。下边这个其实就是这个下边的啊,我看一下它里边这个代码。哎,那里边儿代码的话呢,是不是就这些啊。这个大家看到有兴趣吗?没什么兴趣看是吧,哎,这个呢,就是纯粹的字节码指令了就啊。啊,这个你要看懂的话呢,那就比较高大上了是吧。啊OK啊,这个呢,咱们就诶简单的给它略一下啊,这里边儿我们能看到什么信息呢?你看到啊,这个user呢,咱们是想给它附一个直角A是吧,这个过程呢,其实是在这儿的哈。啊,这儿其实是呃,把这个III漏的这个我写的一,这个其实是呃,这个这个咱就说叫啥呢,叫局部变量了哈,这个我我只能说现在告诉大家,这个一呢,其实表示的就是哎,索引为一的那个位置,其实就是这个小A了。
17:09
诶把它呢,做一个针对我们的A值的一个赋值,你会在发现这个的上面啊,这块是不是同样的也是针对它有一个赋值操作,这有个一音看。这个一的话呢,是谁啊,就是这个一哈。相当于你看到呢,这个在使用这个构造器给它赋值之前呢,是不是有这个显示的赋值了。所以通过这儿呢,想告诉大家就是它会先有显示复制,然后呢再会有构造其中的复制。你说诶这个一跟这个一,这俩一注意不是一回事,这个是我们的这个索引一,这个呢,是这个值是一啊,你要呃担心的话呢,我们把它改成十,咱们再重新的做,再做一个重新的编译呗。哎,编译完以后呢,这块你看我刷新一下,看是不是就看到编程式了。哎,那你说诶怎么那个指令也变了呢?哎,因为呢,我能罩得住一的那个常量啊,你要是这个十的话呢,我就没有那样的一个现成的指令了,我就重新给你放一个常量十了,这个呢就当成是一个。
18:03
一样这个范围,这都细节的事儿了啊,这资金码指令的事儿了,诶你知道,你看现在就变成十了,这个呢,还是那个索引仪,所以通过这儿呢,大家能够看到一定是先显示赋值,然后呢在构造器中赋值。哎,那如果笔试面试的问你说你怎么知道这个事儿呢。你别说你测试的,你说我看自己码没进是吧,这是不是感觉就更高大上了,就。嗯,OK啊好,那为什么我们刚才说才说呃这个呢,就是呃相当于是我们的构造器,但是不完全等于是因为构造器里边我们并没有显示复制的事儿,是吧?诶其实呢,你在这个方法里边看到了,它其实把显示复制呢,也放到这个方法里了。OK啊,这个以后咱们再稍微的再提一下啊,暂时呢,大家你就知道呢,我们这个证明的过程啊,其实可以有地儿可循的啊。好,这是我们说的第一个事儿。好,那么接着我们看第二个啊,第二呢叫扎病的一个理解啊,这个扎病呢,其实是一个概念啊,呃,叫扎豆是吧。B呢?不就是个豆的意思吗?
19:00
呃,什么叫渣币呢?来,咱们看一看啊,说这个币呢,是一种渣语言啊,写成的叫可重用的组件。啊说好比呢,你有一个扳手啊,很多地方呢都会拿去用啊,这个扳手呢,提供了很多的功能啊,就这扳手呢,就是个组件。扳手是个组件倒没问题,但是呢,好像也不太利于我们去理解扎阿病怎么就是个组件了是吧?诶所以这块呢,我们说诶什么叫扎阿病呢?诶大家注意哈,满足这样的啊要求的这个扎va类啊,我们就称为它是一个渣病。什么样的类呢?首先这个类呢,是public声明的。Public的啊,然后呢,这个类里边呢,有一个无参的公共的构造器。然后呢,它有属性,属性呢需要提供对应的get和set方法。说白了,你得让我有能力通过方法呢去获取你和修改你。哎,那么满足这样特征的这个类,我们就称为它是一个渣病。
20:02
大家可能会觉得说这个好像这个倒没啥问题,但是好像说这个。怎么怎么讲呢,有啥用是吧。诶,你看下边这块呢,我就写了这样一些说明了哈,说这个渣宾呢,我们就会把这个功能啊值啊,诶这种处理啊,包括数据访问啊,诶这个相应的进行啊,这个封装了以后的话呢,我们比如说通过这个GSP页面啊,通过这个呀啊包括呢,我们ipad的这种程序啊,可以去访问这个对象。这样说完之后好像还是没什么概念啊。呃,最初的这个渣宾的这个概念呢,实际上是在这个界面当中去展示的。我给大家呢举两个例子啊,大家呢,去体会一下,我们为什么明确出这样一个概念啊,呃,一种场景就是咱们在最初讲这个数组的时候。你看啊。讲数组的时候呢,哎,咱们当时呢,这里边儿放了两个图啊,就这俩图。诶这个呢,就是跟用户呢,去交互的时候,呈现给用户的这样的这个数据信息了,诶咱们呢,当时也都提到过这个事儿哈,说这里边这是一项,这是一项,这是一项,这有好多项,那每一项呢,看这个元素,这就是用个数组来装了。
21:08
哎,那么具体来说的话,你看这一项其实呢,我们说呢,是不是可以把它就看成是一个对象了。这时候有好多对象。诶,如果呢,我们这是安卓程序的话呢,用Java语言来写的,那这就是对象啊,这就是一个个的对象,好,那么这个对象的话呢,诶。这儿呢,我们是这个放到这儿了哈,你往上滑的话呢,是不是这块。哎,很多都会呈现出来,那就意味着我们是不是有好多的对象。哎,那么问一下,你说这个对象是我们自己一点点一个一个扭的吗。肯定不是是吧,那能累死你了,就哎,那得是在一个循环当中去帮我们去创建的啊,那这时候创建的时候呢,其实呢,它调用的都是那个空参的构造器。啊,都调的是空三的构造器好,那空三的构造器呢,我们知道造这个造完这个对象以后呢,这个属性呢,都是默认值的啊。哎,那么你会发现呢,你这个对象的话呢,是不是有好多的属性都有值啊。
22:03
这都有值都给你附上了,包括这个图片呢,你可以理解成是有一个,比如用string形的。其实呢,是一个URL类型的啊,诶我们来存储这个图片的一个路径呗,是吧,哎,就是所有的这些呢,你看到这个信息,实际上呢,都可以看到是我们这个对象的属性了,那这个属性呢,显然都附上值了,怎么附的呢?哎,通过赛的方法来附的。好了,那我说呀,这里边儿的每一项,既然你说是个对象,那我们呢,先用一个类来刻画这里边儿的每一个对象,这个类我们就使用扎宾。也就意味着这个类我们在设计的时候呢,这个类是个公共的。然后这个类里边呢,有一个空餐的公共的构造器。哎,目的是什么呢?方便我们通过空台那个构造器啊去造对象。然后呢,接着呢,你去提供这些属性的get和set方法,我呢通过set方法给你这里边儿的这些属性呢,去赋值。哎这呢就是哎我们通常的一种做法,哎这儿呢,我们就提到了这种扎阿病的一个概念。
23:04
啊,这个稍微的体会一下,这边也是一样啊,有同学可能会说,那为什么我们用空三过道器,哎,不是也可以代餐吗?是这个里边呢,它带参,可能参数呢是五个十个的,你这个里边呢,这也是对象,它也带参,他也好多属性,你发现他这种属性呢,是完全不一样的,你看这个架构就简单,这个就复杂是吧,所以我不管他说你这块呢,属性多还是少哈,我统一的全都用空参的鼓道器来造对象。哎,然后进而的话,你说你属性多,那你就多掉点赛的方法就得了。哎,所以呢,我们这里边儿的啊,这些像对应的这个类呢,我们都相当于使用渣并去刻画。好,这是一个场景啊,然后以后的话呢,我们还会讲这个数据库。数据库呢,我这块呢,是拿一个客户端啊,叫做搜这样一个。或者叫有小工具了是吧?诶我们去查看啊,那比如说呢,我这儿呢,就是一些具体的数据库了,诶数据库里边呢,有很多的表啊,我就随便打开一张表了,诶那就以这张表为例,咱们是存储在数据库当中的啊呃,那么大家呢,你可能应该有点感觉啊,我说呀,横向的每一条记录啊。
24:07
实际上呢,是不是都可以看成是我们Java层面的一个对象。这不就好多的这个客户吗。好,那以后的话,我们还真会有这样的操作啊,咱们会把这个数据库里边这些记录啊,咱们诶把它呢,转移到Java这个代码层面,让它以一个一个的对象的方式呢去呈现。好,那你相当于每一条记录这块是不是得造个对象?哎,那造对象是不是得有对应的这个类。那不妨我这个类呢,也就叫做customer了啊。哎,我就要到customer,那么这个类呢,我设计的时候呢,我就把它设计成叫张阿斌。也就意味着这个类呢,我去提供一个空参的构造器,你这里边儿有一条记录好,回过来呢,我就调用空餐的构造器,我造个对象。呃,属性都是默认值啊,然后呢,你这里边的每一个属性,这个每一个叫字段值吧,我叫列的这个值,我呢都通过我这个勾,呃,这个对象的set的方法给你呢去复制,比如接下来我的set ID啊,我叫1SET name,我叫汪峰。
25:05
啊,这我还特意把王芳都放到头条的位置是吧。啊。诶就可以了是吧,诶所以这块呢,我们相当于后期啊,咱们去造一些具体对象的时候呢,我们把这个对象所属的类啊,咱们都设置成叫扎,方便呢,我们写出这种先统一性的代码。啊,统一的代码什么意思呢?我都用空调的构造期,我都用S的方法去给你复制,哎,这就是统一性的这个。特点啊。好,那说了这么多,咱们回过来到代码这个层面呢,诶我就在这个下边呢,咱们就诶随便来一个啊,比如说刚才在提到这个customer了,那不妨呢,我就诶声明一个customer这个类。哎,这呢,我们提到了说哎怎么叫个扎病,哎把这个概念呢,我们粘过来啊好,那首先呢,这里边提到了类呢是公共的。呃,现在呢,其实你不写构造器是不是就行。哎,不写构造器首先是空参的了,其实呢,咱们也讲过,构造器的这个默认的权限呢,跟类的权限一样是吧?哎,所以这块呢,其实已经有了啊。
26:03
所以你不写呢,是没有关系的。啊,如果你就想显示写出来,那你就写出来啊。哎,这么着这么着,诶,这不就成了吗。里边的话呢,其实就不用写特意的这个信息了啊,如果你要没有的话,然后下边的话呢,我们去设置它相关的这个属性啊,比如说刚才呢,我们说针对这里边儿这个情况啊,咱们可以做一个相关的参照了,后头呢咱就不管了啊。哎,这里边儿啊,针对这几个属性,哎,我们在这就可以去设计了啊。比如说啊,Private int型的一个ID。Private string类型的name。啊,然后边a private string类型的一个叫email。哎,就它,哎后边这个date呢,其实是一个日期类型的哈,这个你要想写上也行啊,Private date类型的叫个birth啊,这个date的话呢,诶,咱们选一个哈,哎,比如这个circle下的这个date吧。有日期类型啊,只有年月日啊,后边我们讲常类的时候呢,会说它啊,然后接下来的话呢,你要提供这几个属性的get和set方法。
27:02
这个我怎么写了四个呢。写了四个,我这块我就有点儿累了是吧。要不我就。有同学说一键生成这块呢,确实能一键生成,但是呢,这块有知识点咱们还没讲。你看out,加insert。啊,Out,加insert这块呢,咱们实际上可以调出来get and c点一下这四个是吧,我1OK就全出来了。很爽是吧,但是这里边儿是不是有一个大家没见过的。所以呢,我先赶紧CTRLZ一下吧。咱们下一章一来咱就讲这次,讲完这次以后呢,以后我就可不一个个写了哈。啊,这块咱们再忍一忍,这块我就少一点吧。我就把这俩去了啊,咱就整俩。Public老老实实的去写是吧。所以人这个怎么讲呢,最痛苦的时候呢,不是说你。见到过外边的这个世界是吧?不是不是说你没有见到外边世界,是因为你见到外边世界以后呢,你又又给回来了是吧。
28:04
呃,以前那个哪个地方台不是办过那个叫。叫一个节目哈。啊对,变形记是吧。对,就把那个对特别穷的那个孩子跟城里边儿的富养的一个孩子,他俩交换一下是吧,其实这个呢,后来不是也停了嘛,大家议论很多哈,确实对农村这孩子呢,他的影响是过大。对,出去以后呢,你再他再回到这个环境当中,他其实很难受的啊。好,Public这个我们是一个类型get ID。啊。Avoid that name。哎,四针类型的一个N。哎,把name呢复制为N啊。哎,实质类型的get name。诶na好,诶这块呢,我就整治俩属性去给大家演示一下就行了啊好,那么这块我们捋一下啊,什么叫一个扎币呢?首先类是公共的,然后提供一个公共的无三的构造器,然后提供有属性,属性的提供有对应的get和set方法。
29:09
啊,这就算是一个基本的扎病。啊,那如果大家网上你可能去搜一些关于扎宾的概念,有时候他还会提到呢,再去提供一个像图斯润的方法,或者叫echo的方法啊,这个呢,大家有时候会有点儿这个。呃,就是其实说的也有道理啊,这个到后边呢,我们再讲这个object的时候啊,第七章啊,讲object的时候呢,我们再说什么叫equals,什么叫to啊,就是加上呢也行,主要就看你是不是有这样打印的需求了啊呃,一般的话呢,我们说呢,最基本的点是有这样的三个的。哎,大家呢,需要去记一下啊,好,关于张阿斌的理解,大家就记住这个概念就可以了。好,那么最后这块呢,说叫读懂UML类图,哎,首先呢,你得知道什么是UML啊,这个往下看一眼。Ul呢,叫这个。Unified是吧?嗯,Modeling language叫统一建模语言啊,是用来描述软件模型和架构的图形化语言。
30:03
啊,以后的话呢,我们这个在写具体的项目的时候呢,通常会有一些需求文档啊,需求文档里边呢,诶很多时候呢,都会用U呢,我们去刻画当前这个软件的一些模型和架构,常用的这些软件工具的话呢,有这个啊,Power designer啊,Enterprise architect这样一些工具。哎,你像下边这块呢,我这是用一个呃po design啊,用他那画的这样的一个图啊,这个大家呢,就是先了解就行啊,诶为什么这块我们要引入一下这个ul呢,其实主要呢,我们想说它其中的一种图叫做类图。因为咱们后续的一些练习当中啊,哎,会用这个ul这个类图呢去刻画,大家能看得懂就可以了啊怎么来理解呢?诶咱就看得懂它就行,哎这儿呢,我们能看到这个count呢,表示的叫类名。哎,然后呢,在这个位置呢,写的就叫属性了,哎,或者叫成员变料啊,然后呢,你要能看得懂,这里边呢,诶关于这个属性呢,叫balance,它的类型呢是double前面有一个减号。对,这个呢,就是表达它的权限啊,减号呢,表示的叫private。
31:03
那这个加号呢。对,叫public,呃,后边呢,我们会看到这个井号的场景。就是我们讲的那个权限里边那个protected。那要没写呢?诶对,没写就是缺醒的了,哎,但一般很少说我们用缺省是吧,哎,这个注意啊好,然后接下来的话呢,这块有一个下划线的这种啊,诶看似是个方法,但您细看呢,带下划线了,它其实是构造器。哎,构造器点你看小括号里边呢,这就是它的行参了,行参的名,行参的类型,构造器,注意没有返回值质数啊。好,然后再往下呢,就是这些方法了,这些方法的话呢,稍微的呃,你细看一点啊,这个方法的话呢,它的返回值类型是double。你看冒号后边啊,然后这个呢叫deposit叫存钱,下边叫取钱,哎,这里边呢,是它的行参名和行参的类型,它后边没有写冒号,那就表示呢,这个方法呢,是个VO的。那就可以了啊行,那以后的话呢,大家看到这个月类图的时候呢,你能看得懂,诶知道呢,拿着它翻译成我们对应的代码就可以了。
32:06
啊,这呢是刻画了我们后边要讲的这种继承的这种关系啊,到时候我们讲了继承器以后呢,大家就能看得懂这个这个符号了,就是继承的意思。OK啊行,这块我们关于这个羊毛类图呢,稍微的提一下,那大家呢,能够知道它是什么意思啊就可以了。
我来说两句