构造代码块:在一个类中没有任何的前缀或者后缀。
{
cry();
}
我们来看一下代码。
public class Person4 {
private String name;
//构造代码块,可以给所有对象进行初始化的。
{
cry();
}
//构造函数是给对应的对象进行针对性的初始化。
Person4()
{
name="baby";
//cry();
}
Person4(String name)
{
this.name = name;
//cry();
}
public void cry() {
System.out.println("哇哇哇");
}
void speak() {
System.out.println("name:"+name);
}
static void show() {
System.out.println("show run");
}
public static void main(String[] args) {
//Person4.show();
Person4 p1 = new Person4();
p1.speak();
Person4 p2 = new Person4("沙卡拉卡");
p2.speak();
}
输出结果: 哇哇哇
name:baby
哇哇哇
name:沙卡拉卡
哇哇哇
结论:
由此可以看出 构造代码块,可以给所有对象进行初始化的。只要创建了对象,构造代码块的方法就会执行。
公司面试也会涉及这方面的内容,
给你一个构造代码块,静态代码块,构造函数。问你他们的执行顺序是怎样的?
静态代码块最先执行,执行一次。
每创建一个对象,构造代码块和构造函数都会再执行一次。
先执行构造代码块,再执行构造函数。