00:00
好了,那么咱们接着往下看啊。除了静态代码块之外啊,还有个叫做实例代码块。实例代码块,各位啊,咱们看一下实例代码块。嗯。Instance instance啊,实力code。还有那叫实例代码块,这个用的很少,了解一下啊,不会没关系啊,除了静态代码块之外,还有一种。语句块啊,叫做实例语句块。我们来看一下这个实例。鱼块有什么?特点好吧,哎,实例语块啊,Instance code,那我在这个里面提供一个构造方法吧,构造方法这是午餐的啊,午餐的构造方法system.out.line打印输出。
01:08
这是什么叫无参数构造方法吧,对不对?我们再来一个,嗯,来个有参数的吧,Instance code。然后参数呢,我们跟一个类型name吧,随便啊system.out line打印我们输出。啊,我们输出叫有参数的构造方法,诶完事,那么接下来呢,我在这儿啊,写一个什么呀,写一个语句块啊叫实例语句块啊这个呢叫做constructor,下边这个呢,也是一个什么呀,叫constructor。然后呢,这块呢,我们叫实例语句块,非常之简单,写个大括号就行了。不要加static啊,加static叫静态,静态代码框,如果你什么也不加,在这写个实例句块啊,system.out点打印输出。叫做实例语句块执行好,那么接下来我们在这里呢,我们写一个main方法,Public static void men。
02:10
好,这是一个程序的入口啊,程序入口,那这个程序入口呢,接下来我在这儿怎么着,我扭一下。New一下啊,这个叫O1吧,扭它,然后呢,拗一次吧,或者我不赋值也行,对吧,为啥非得赋值啊,我就使用new干啥呀,去调一下这个构造方法。去调什么呀,这个构造方法。明白吧,在这个构造方法执行之前,我干什么呢?我输出一个man begin。Men begin。我们先把下面这个内容注释掉,我们来看一下。如果注释掉的话,我们编译运行Java c编译instance。Code啊,点Java Java运行instance code走好,大家看是不是只有这个men begin输出了。
03:07
对吧,所以可以得出一个什么结论呢?实例语句块不是在类加载时执行。因为你问方法已经执行了,你的类实际上已经加载了,但是你这个实例一块并没有执行,这说明实例一块并不会在类加载时执行啊。实力一块。在类加载时并没有执行。实例语块语法是什么?很简单,大括号就行了,这里边直接写什么呀,加Y语句啊就完事了啊,加Y语句加Y语句好了,那么这块呢,咱们把这个new调构造方法给它,给它放开行吧,调的是无参构造方法。那我们来看一下。会输出什么?好吧,Java c编译,Java运行好,大家看实例与块执行,无参数构造方法执行。
04:02
也就是说,我们在调用构造方法的时候。这个实例鱼块它会先执行,再执行构造方法当中的程序是不是?那么这块呢?我们如果再调一次呢,我在拗第二个对象的时候,那你说这个实力这块会不会再执行一次呢。编译运行好,我们看结果,实例一块执行无参构造化执行,实例一块执行无餐构导化执行。哎,果然是实例一块,在什么时候执行啊,在构造方法执行之前执行。对不对,这也是一个特殊的时刻吧。对吧,哎,那如果说我调的是这个有参数的构造方法呢。里边跟一个字符串顺呢,我写上一个叫做ABC,我们来看一下,加va c编译加Y运行好看结果。
05:01
执行有参数的构造方法,实例一块是不是也会执行啊?对吧,如果再一次呢,它会不会再执行一次呢?XYZ。我们再来编译,再运行。哎,发现有参数不段方执行之前实例一块执行,所以通过这个测试,我们得出一个什么结论啊,实例语句块在什么时候执行啊。只要是只要是构造方法执行,必然在构造方法执行之前自动执行什么实例语句块中的代码。实际上啊,这也是散公司为为什么呀,为Java程序员准备的一个特殊的时机。啊,叫做对象构建时机啊,对象构建时机,如果有需要可以将代码写到这个地方,你希望每一次调构造方法的时候,对吧?哎,调构造方都去执行这段代码。
06:11
嗯,有同学说老师这个有什么用啊,我给大家说一下啊,有没有可能会出现这种情况,就说你这个构造方法和这个构造方法,还有下边N多个勾导方法,有没有可能你前几行的代码一样,有没有可能各位。回复,我就是说你你在一个类里边,你写了很多很多构导方法,一个两个,三个四个,你写了很多构导方法,结果你发现这个构造方法前面有一部分代码,对吧?还有这个构造方法前面有一部分代码,这个构造方法前面也有一部分代码,这部这些代码有没有可能长得一模一样?有可能,那你就可以把这些公共的代码提出来,放到实例里边行不行?放到实力一块行不行?这样的话,在每一次构造方法执行之前,是不是都会去执行这段代码呀?没听懂什么意思。
07:01
嗯。就是这个实例一块用的很少各位啊,很少你作为一个了解啊,作为一个了解,这个实例鱼块它的执行时间是在构造方法执行之前执行。构造方法执行之前执行。它也是一个特殊的时机。啊,也是个特殊的时机。记住这个啊。也不能说是什么分割线啊之类的。这个好像说的不是特别专业啊,知道你有一个大括号在我们的程序里边可以这样写,而这种实例一块,在每一次构造方法执行之前会自动执行,你每调一次都执行一次,每调一次都执行一次,每调一次它都都执行一次啊,不管是哪个构造方法,你只要调构造方法了,实力鱼块它都会执行一次啊,你记住有这么一个时间点,如果以后大家有一些代码需要在这个时间点上做一下的话,我希望你能想起来曾经有一个语句块叫实例语句块啊,实例语句块。
我来说两句