00:00
那行了各位,咱们在这里再重复一下各位啊,再重复一下就是构造方法是用来干什么的呢。我们的构造方法到底是用来干什么的?各位告诉我。构造方法是用来干什么的?嗯,就是用来创建对象以及什么。给我们对象的属性赋值是不是?它就这一个作用吧,是不是没没有别的作用啊。构造方法到底用来干什么的?他就是为了完成对象的创建,一创建的过程当中,给我们的属性是不是负上值啊好,那我写一个正规的啊,完整的各位啊完整的。比如说来个customer顾客啊,或者说来个VIP吧。啊。来VIP啊。Public。Class啊,VIP一个VIP呢,应该是有什么呀,编号会员号是不是啊,应该有会员姓名是吧?应该是有这个生日。
01:11
行吧,哎,还有这个叫性别对不对?哎,简单来一个啊,比如说会员号的话,采用浪类型是吧?哎,编号,然后呢,会员的这个姓名的话采用字符串,然后生日呢,采用一个字符串吧,啊,Birthday啊,Birthday啊,或者是birthday生日,那么性别这块采用bird类型,行吧?哎,采用布类型,那大家想一想,我们是不是可以给它提供多构造方法,比如说参构造,我们能不能再写出来,叫无参数构造方法,我们可以给它写出来。行吧,哎,这是无参的,然后下来再写个有参数的,有参数有参数构造方法,那我写一个啊,比如说VIP是不是,哎,那这块呢,是浪类型的。嗯,浪类型的什么呢?这个这个这个这个这个这个叫会员号。
02:06
会员号啊,然后呢,再来一个死猪类型的姓名。啊,会员姓名,那么接下来这个地方我干什么呢?我给这个会员号怎么着啊,哎,附上一个值。啊哎,这个地方其实就是初始化什么给谁给实例变量赋值吧,或者叫什么初始化什么实例变量啊啊或者叫初始化什么属性吧,是不是,哎,我可以把这个方法,这个地方的这个参数,我可以给它赋给name啊。那这个name给它附一个值叫什么呀?叫姓名啊,我把姓名拿过来给它附上去是不是,哎,这是一个有参数的构造方法,那我能不能再提供一个有参数的构造方法呀,能不能啊,Public VIP是不是好,那么接下来我们在这块怎么着啊?哎,我们可以给一个比如浪对吧?啊浪类型,比如说会袁号是不是,哎,猪类型叫姓名对吧?然后再往下呢,还有一个什么呀,Birth生日呗,那生日的话就是润对吧生日。
03:14
对不对,哎,那这样的话,我能不能在这,哎给会员号附上一个值啊,可以吧,给name附上一个值啊,行不行啊啊给我的一个生日叫birth,我能不能给它附上一个值啊,都可以啊,我把这个生日给它拿过来放到这,那么接下来我继续再往下,那再来个有参数的构造方法,这个有参数的构造方法是这样的,Public VIP,然后接下来我跟上四个参数浪类型的叫做会员号是不是,哎,然后呢,还有个姓名,然后再来一个叫不呃叫生日,然后再来一个什么呀,叫性别对吧?哎,性别好,那么接下来我在这儿能不能,哎把这个叫做会员号,给他附上这个变量,然后我们这个name对吧,会员的名字我们给它附上一个什么呀,叫做姓名,然后接下来我们在这儿呢,再来一个,比如说我们还有。
04:14
这叫什么呀?Birth生日是吧,那么生日拿过来,我们直接给他拿过来放到这,然后接下来还有一个什么呀,叫做性别,那么性别这一块,哎,我们给它传一个值,我们叫性别呗,拿过来放到这儿好了,那大家看我们可以通过这个无参构造干什么,我们可以通过无参构造来创建对象,对吧。那无参构造创建对象的时候,你是不是没有赋值,系统会负默认值,这个是零,这个是什么呀?None,这是none,这是什么呀?False对不对?那如果说你调这个构造方法的话,是不是你传过来两个数据只只是给他,给他初始化了,剩下这个和这个你并没有给他赋值,系统是不是还是给他复默认值,就相当于说在这位置你只给这个number和name附上值了,你再往下,实际上这里还有两行代码。
05:03
是什么呀,是这个,呃,Birth这块它会默认赋一个什么值啊,哎,None对不对,哎默认负一个none,然后呢,再往下,实际上这个sa呢,在这个位置啊,它会默认负一个值叫什么呀,叫false,只不过你这个代码你呀看不见,你明白吗?你看不见。你看不见啊,实际上这两行是有的,对吧,就是没有手动赋值系统都会默认。赋值明白吗?没有手动赋值,系统都会默认赋值,你现在在这块的none number,还有这个,呃,Name这两个附上值了,你剩下两个没赋值,对吧?你这个对象构造出来,构造的时候,实际上这个这个有值,这俩其实也有值,你这两个是手动赋的值,这俩是系统负默认值,那如果你传三个参数过来,你给这个number,这个name和附上值了,那么你第四个叫thanks没有赋值,实际上在这里它还会给thanks附一个什么呀,叫做默认值false啊。对,实际上再往下啊,实际上这里有一行默认的代码,你是看不见的,它会给它附一个false,对,哎,你这是看不见的,那么这个就完美了,Number呀,Name和birth,还有thanks这四个变量都给它附上值了,对不对,那自然就没有系统默认值了,那如果是你大括号里边什么也没写,就是你这啥也没写,实际上这里是怎么着啊,哎,是把这四个变量都负了,默认值这是零,这是now,这是now,这是什么?False就是这样,那我们不妨把这几个构造方都调用一下,大家看这个构造话,无参的,这是有两个参数的,这是有三个参数的,这个是有四个参数的,那一共是12344个构造方法,我们可以去哎写一个程序去调一下,对不对?来,我们在这写一个程序。
06:37
我们叫constructor test03,来我们看一下啊,这个构造方法,那么在这块呢,我们就直接这样吧,来public class,我们就要写上constructor test03,然后加上去一个public sta VO,然后呢,我们在这里干什么呢?哎,大家看好了啊。我们在这儿呢,哎,调用什么呀,不同的构造方法创建什么对象,创建对象啊,那么比如说VIP vipv1等于new一个VIP,这是无参的对吧,VIPV2等于new一个什么呀,VIP,那么这个时候呢,我可以给他传一个什么呀,编号111111L是不是,哎然后呢,后面是他的会员名字啊啊会员名字比如大灰狼。
07:27
是不是,哎大灰狼,然后呢,我们这个第一个参数是一个浪类型,第二个参数是字符串,看一下啊,第一个是浪类型,第二个参数是字符串没了,第三个是浪类型,然后字符串字符串是吧?行,那接下来我们可能啊VIPV3对吧,你有一个VIP,我们这块呢,可能是2222L对吧?嗯。嗯。呃,大灰狼小绵羊小绵羊啊,然后呢,生日呢,我们写一个啊,比如说生日是20202020了,2000啊杠幺零-幺零,哎,这是一个字符串啊,这是个字符串生日啊,然后我们还可以再来个VIPV3V3,那么接下来这个V3啊V4,那么这个时候呢,我们再去扭一个VIP,再创建一个对象。
08:21
对吧,33333L对不对啊,比如说我们这呢叫做什么叫做钢铁侠啊钢铁侠,然后这块呢,我们再来一个啊这块写一个什么呢?比如说1980-幺零-幺幺对吧,然后接下来再往下加一个什么呀,哎针加一个针好你看这样的话就表示创建了几个对象啊,创建了四个对象,这个呢是无参构造创建的,这是两两个参数创建,这是三个参数创建,这是四个参数创建的,对不对,但都可以创建出对象,而且通过每一个多方都可以初始化之后的这个实例变量的值都不一样,如果你调这个,那么都是默认值,如果你调这个,前两个是手动指定,后两个是默认值,如果你调第三构造方法就相当于什么呀?诶第一个,第二个和第三个,前三个是什么呀?是手动赋值,后一个是哎系统默认值,如果是调第四个构造方法的话,那就相当于你这四个都给他手动复认值,总之呢,我在这里讲最后一句话,各位啊,就是构造方法到底有什么用,就是完成对象的创建。
09:21
以及给实例变量怎么着?哎,给它初始化,给他初始化啊,就是这个作用构造方法就是这样一个作用,就别的作用没有了,我们可以访问一下这几个对象,哎最后的一个结果啊,比如说V一点什么呀,我们的number是不是,哎这个都不能随便写的啊来来来来,这个除了number之外还有什么name还有什么呀?哎叫做birth是不是,还有什么呀?哎叫做sex是不是?这样啊,这样的各位。哎,这个number name birth和sex这几个都是谁啊,都是我们唯一V1的类型VIP吗?那这个回头看是不是VIP里边有没有这个number有没有name,有没有birth,有有没有thanks,有吧,哎,有的话你就可以哎访问啊,有的话就可以访问这个地方随意这只是参行参个位啊,这是变量名随意,你愿意怎么写怎么写,你愿意怎么写怎么写啊,这个变量名愿意怎么写怎么写,对你把这个变量你不是调这个方法嘛,传过来这个这个还有这个还有这个传过来这四个之后呢,你把这个东西都给它附到这些变量上嘛,是不是,那这样的话就表示创建完这个对象之后,给这个对象的属性就初始化了,就附上值了啊,构造方法就是完成对象的初始化和对成员变量的。
10:28
这个副初始值啊,说的很有道理啊,非常有道理,来那么这块呢,我们同样把这个呢拿过来,拿过来之后粘贴过来放到这儿,这块呢,我们直接给它改成什么2222是不是好,那么再来我们这块呢,再贴过来啊,那么这边改成什么呀,3333是不是来再来这个是4444啊来4444啊好,那么这边我们都可以给给他一个结果,各位啊,这是啥呀,这应该是零对不对,这是什么呀?这是none none嘛,是不是,哎,这是啥呀?这这这个是不是none啊是不是,哎再往下这是false吧,哎,False,那这个呢,这个是不是就是11111L了是不是,哎,那么这个结果是什么呀?就是大灰狼呗。
11:10
大灰狼呗,是不是,哎然后接下来这个呢,这个是不是就是none啊对吧,这个是不是就是false啊,因为这两个是不是没有负上值,它的默认值吧,那这个呢,其实又不一样了,对不对,这个是222222是不是L,然后接下来这边是什么呀?叫小绵羊小绵羊是不是,然后这边呢,哎生日就是比如说有值了对吧,这次这个就有值了,然后,但是最后一个是什么呀?是false呗啊是false,然后这块呢,一串上都有值了,这是3333L是不是333L,然后再往下,这钢铁侠是不是钢铁侠是不是,然后再往下呢?哎,这个值就有值了是不是,因为你传过去的最后一个值是不是就是处啊啊就是true啊,我们猜测的这几个值对不对,我们可以来编译一下,并且运行Java c呢去编译一下Java c呢去编一下constructor test03.java然后Java去运行constructor。
12:07
Constructor test03走好,大家看一看这个数对不对啊,0 none for0none none for对吧,再往下111大灰狼 none for111大灰狼nonefor是吧?然后再往下222小绵羊你看222小绵羊二你看for是不是,然后再往下最后一个是333钢铁侠,哎,19801011处是不是?哎,这个都能对应上,这个就是构造方法,各位啊,这就是构造方法啊,行,我的构造方法这块呢,我就说完了啊,有几个重要的点大家注意。我来说你来想啊,如果一个类不提供构造方法,有没有构造方法?来各位有没有构造方法,如果一个类不写构造法,有没有构造?有没有构造方法?在这里提一下各位有还是没有。有吗?哎,那个构造方法叫啥,叫什么名字,那个构造方法。叫什么叫无参数构造方法是不是,哎,叫做。
13:03
缺省构造器啊,这个东西叫缺省构造器。嗯,无参数构造方法,好,那我们问大家一个问题啊,如果提供了一个构造方法,无参构造还有吗?就是如果我手动写了一个过渡方法,无餐过道还有吗?无参构造是不是就没了?没有了没有了对不对,如果我写一个构造方法的话,我写上这个无参构造是不是就就系统就不再提供了。那为了保证无参构造有,所以我们建议大家怎么着,我们建议大家怎么着,以后开发的时候怎么着,把这个类的什么无参构造怎么着,无参构造方法怎么着。给它写出来,手动的写出来,这样的话它是不是永远就不会丢失了,哎,手动的给它写上啊,然后还有一个问题,就是刚才问的构造方法这个东西它的作用是什么?两件事儿啊,构造方法两,两个作用啊,作用一,构造作用一。作用一是什么?作用一是创建对象对吧?作用二呢是给给属性怎么着啊赋值啊,给属性赋值,这就是我们构造方法的一个作用啊,构造方法作用,那么构造方法怎么调用?来,我问你来答啊,构造方法怎么调用啊,构造方法怎么调用啊。
14:22
怎么调用,使用哪个运算符去调,哎,使用new去调,使用new去调啊,New运算符去调,来再问大家构造方法,方法名和什么一致。构造方法的方法名和什么一致?哎,和类名一致,各位啊,和类名一致来构造方法有没有返回值类型?构造方法需不需要写返构造方法有返回值类型吗?哎,没有没有没有啊,没有没有仿式类型构造方法,重可以重载吗?
15:03
可以重载吗?哎,可以重载啊,一个类当中可以写多个构造方法啊,构造方法是支持重载的,好了,那么咱们先休息十分钟好吧,然后我们看一看封装啊,休息十分钟。
我来说两句