00:00
来继续,那接下来呢,我们来说一下啊,第二种方式就是通过我们的构造器这种方式来进行输入啊,那么在讲这个具体的这种方式之前呢,先来给大家去说一下它到底是怎么去做的啊,其实我们以前呢,也通过这种方式来去创建过对象,然后呢,也给他们这个属性复活值,啥意思呢?啊,就是我们在用对象的时候呢,我不调用它的那个无参构造器,而是调用一个有参构造器,那么你在尿的时候,你是不是就得把那个构造器里面的参数给人家负个值啊,对吧?而你给定的那个值是不是直接就给到你当前对象的那个属性上了,是不是OK,那么其实它就是通过这种方式来完成我们这个属性值的筑物的,因此,如果你想使用构造器的这种方式,那么首先你得去提供上你要用的那个构造器,那么现在我们就回到了我的开发工具里面,来到我这个car里面,那么首先大家要注意,现在呢,我先提供上一。
01:01
对哎,比如说有参过道器,我们把这个都加上,你看螺是加了一个过道器啊,那么大家一定要注意啊,就是当我们加上有餐构造期以后,大家一定要记得把那个无餐的也给人家加上,能明白吧,为什么要这么说呢?可能我们想说,那我又不用那个无差,我加它干嘛呀,你不用不代表着框架不会用啊。对不对,你看如果说现在你把它加上了,那么你再去测试,刚才你刚刚才你写好了这个功能就已经开始报错了,诶没保存是吧,保存一下。你看一下。错了没就逆的错了吧,为什么错了呀,因为我没有无参数过道器了呀,对于我刚刚的这种赛的方式来注入的话,那首先我得先通过无参数过道器是把对象创建出来以后,我才能调你的散热方法,对吧?那么大家就一定要养成这个习惯啊,就是提供构造器的时候,要么我一个都不提供,它会有一个默认的,要么只要你提供一个带参数的,你就顺带的把那个无参的也给它提供上,这样的话我们可以避免一些不必要的问题,听懂了吧?啊,这就是一个编程的一个习惯了哈,好,所以说呢,我就顺带着直接把这个构造器呢给它提供上啊,来提供上一个无参数的构造器,OK,那这个现在现在你再去用的话,那就没有什么问题了,好,接下来我们就来使用这个构造技能,给它完成一个B的配置,来看到这好,这是我们D依赖。
02:46
啊,依赖是吧,注入的方式什么方式啊,叫做构造器的方式,好,那么我们再去配置这个B的时候呢,大家就需要注意了啊,ID呢,我们还是要这么看能行吗?不行,你得看你的吧,是吧,因为不能重复嘛,呃,Class呢,你还得去指定啊,指定上我们这个car,然后呢,这里面写什么呀,注意这里面你就不能再使用property了,你要还使用property,它还使用S方法,而这里面我们用的是谁呢?哎,用的是construct up,翻译一下什么意思啊,构造器的参数吧,那行吧,那你看一下有几个参数啊,现在三个吧,String string double,那你就写呗,这里面就是写出几个来啊,第一个它是不是给我的这个负刻值啊,对不对,那我再来写一个啊,比如说呢,直接写个Y6啊,比示说。
03:46
叫这个宝马是吧,那么大家来想,我这种方式赋值的话,还需要去指定这个name吗?需要指定吗?不需要了吧,你调方法的时候,你想一下你自己调方法的时候,你管他这个叫什么名字吗?你管人家的心态叫什么名字吗?
04:08
管不管,你只需要把对应的给过来行不行了,所以说这个位置我们就不需要再去指定那个内的,而且你想指定你也没办法指定,你怎么指定啊,你想想你写啥呀,这地方。点对吧,那我这地方我是可以随便去改的呀,是不是啊啊所以这个东西我们就不要再去写了啊,你就直接写个value就行了啊,那还差差什么东西啊,下一个厂商啊这这这这啊华盛是吧啊笑啥华盛的你能买得起啊是吧?来下一个八九就是我们的价格啊,价格的话,这这里再贵一点是吧?啊随便写一个了啊好,那你来看一下现在的话呢,我就通过什么呀,通过诶可穿这二就给我们的构造器,就是它里面那个构造技呢,传递了三个值,而这三个值呢,将来就会什么对应着我们的这个参数的顺序给它复制进来,那么说说呢,这种方式我们也可以啊,直接拿到一个并列项,听懂了吧,而现在他用的方式就是什么构造。
05:21
气的方式,好的,来吧,我们来测试一下啊,那我就public好,这我们什么呀,Constructor好,加上我们的at test。那这里面的话呢,你还得创建这个LC统辑对象哈,我就拷贝一下了,好拷贝一下啊呃,然后接下来的话就来获取这个对象,怎么获取呢?获取对象盘都是一样的哈,直接盖个B,然后呢,给个卡一给个car.class是就行了,最后呢,给你返回一个什么东西啊咖啡箱,好来我们C次输出一下就看看明白了吧,选装就行了啊,大家注意看这个结果了啊,结果可能会出乎大家的这个意料哈,来容找。
06:12
先看一下我们打印的这个卡对不对。是不是我们自己给的值啊?没问题吧,但问题是什么呀?好多同学理解不了,就是这个,咋们咋还出来了呢?奥迪1T40万,这是我们上一个配置的密码,那现在我有没有获取过它呀,我有没有执行过这个方法呀,有没有没有吧,我单独执行的它吧,是不是执行它,你看啊,我单独执行它,那为什么?哎,你这个东西还要打印出来呢,为什么呀?那我们就逆向去分析一下呗,既然你能打印出来,说明这个方法你觉得调用了吧,对吧,既然你调用这个方法了,说明我第一个配置的那个B是不是也被创建了呀,对吧?那我们没有去创建它,我们没有去获取它,但是它被创建了,也就意味着我们能分析出来的是什么呀?Point LC容器默认会把它创建出来,对不对。
07:14
你没做过这个事儿,但是那这个对象出来,那不就是死宫做的事了吗?那还有别别的人做了吗?不可能是这个意思吧,啊说以大家这个地方需要注意一个问题啊,什么问题呢?是我们后面要强调的就是呃,病的一个作用,玉的这个问题,就是现在我们所有配置的这个病啊,现在我们所有配置的这个病,不管是他也好,还是他也好,默认情况下,死破容器被创建的时候,病理对象就被创建了,理解吧,那么你就来想一想,我们在这个方法里面,我创建过这个LC容器吧,所以说你在创建这个LC容器的时候呢,他就要把这里面配置的所有的病都给你实例化了,那么其中就包含它,而他被实例化的时候,那么自然而然就要去调用我们的散方法了吗?听懂了吧?所以说这个地方呢,有一个小小的问题啊,这个问题的话,我们后面会给大家去讲到,但是现在你需要知道它的原因是什么,能听懂了吗?听明白了吗?好,那么如果说啊,不理解的同学呢,那你就先不要去纠结。
08:14
那你就直接能看到我们这个结果是没问题的就行了啊,你就假设这东西是不存在的啊,在你眼里是没有的,好吧,等我们后面讲这个L容这个B对象的作用率的时候,我们再来给他去详细的说它,现在你只要看到这个结果就行了。有没有问题啊。没问题了吧,OK啊,这就是我们通过构造器的方式来去创建我们的并列项啊,配置我们的病,然后呢,通过我们的构造器能来注意进行我们的依赖,注意也简单吧啊。
我来说两句