因为软件测试有代码走查项目,接触到了这种题目,这些java代码结构都好奇怪,不是我们学习的那种
直接一个{}包裹的代码,算是什么方法,还有final是不是只能用一次,还有staic修饰的代码,在调用的时候位置在哪,还有就是这个结果是怎么输出出来的,就是按照什么调用顺序输出出来的
直接一个{}包裹的代码,叫做构造代码块,在该类对象被创建时执行
final是最终的意思,使用final修饰的类无法被继承,
修饰的方法不能重写,赋值给变量后这个变量就不能改变了,变为了常量,不懂你这个只能用一次是什么意思。。?
staic{}这样的叫静态代码块, jvm执行类加载 的初始化阶段调用
继承中代码块执行顺序:父类静态块—>子类静态块—>父类代码块—>父类构造器—>子类代码块—>子类构造器
首先输出r1,r4,静态块优先输出,然后是执行mian方法,输出pre,再new Hawk()创建对象,Hawk继承Raptor,Raptor继承Bird,
按照上述执行顺序,先执行Bird中代码块,输出b1,b2,,然后执行Raptor中代码块输出r3,r2,最后输出hawk
{} 是代码块,static {} 是静态代码块。
代码块里面的内容,会在对象被创建,执行构造方法时,将代码块{}里的代码放在构造方法最上方先执行。
静态代码块,是类在加载到内存时就执行了。
那是构造函数,只是写到一行了,格式化一下就好了。