类的第四个成员------程序块(代码块)
- 作用:代码块跟普通方法一样,是用来做事情的
- 写法:可以认为程序块是一个 没有参数 没有名字 没有返回值的特殊方法,就单一对大括号,把内容都包起来{;;;;;;}
- 用法:块也需要调用才能执行 因为没有名字什么都没有,所以我们自己无法调用。每一次我们调用构造方法创建对象之前,系统会帮我们自动的调用一次程序块,让它执行一遍。存在多个代码块的时候,挨个从上往下执行
- 特点:没有什么重载的概念(因为它没有名字 没有参数)
- 块可以在里面写一些程序,我想要在创建对象之前执行。
从运行结果可以看出,代码块在构造方法的执行之前执行。
this补充
this 可以在构造方法里调用另一个构造方法 this.Animal();因为认为名字肯定是Animal(跟类名一样)不可以叫别的,所以把名字省略不写了。this调用构造方法的时候,必须放在第一行。
拓展:
构造方法在结构上没有返回值。但实际上有,返回了创建的这个对象的空间的引用
如:Animal animal = new Animal();
new Animal(); 会在堆空间开辟内存空间
然后把开辟的这块内存空间的引用赋给了栈内存中的引用类型变量 animal,这样 animal 就指向了这块空间。