在这里我们谈论一下构造代码块,构造函数和普通函数的区别和调用时间。
构造代码块:最早运行,比构造函数运行的时间好要提前,和构造函数一样,只在对象初始化的时候运行。
构造函数:运行时间比构造代码块时间晚,也是在对象初始化的时候运行。没有返回值,构造函数名称和类名一致。
普通函数:不能自动调用,需要对象来调用,例如a.add();
如果只看代码运行先后顺序的话:构造代码块>构造函数>普通函数
下面给一个程序
public class Test1 { public static void main(String[] args) {
code n=new code();
n.normal(); }
}
class code{
//构造代码块1:
{
System.out.println("我是构造代码块1");
}
//构造函数1
public code(){
System.out.println("我是构造函数1");
}
//构造函数2
public code(int t){
System.out.println("我是构造函数2"+t);
}
//普通函数
public void normal(){
System.out.println("我是普通函数");
}
//构造代码块2:
{
System.out.println("我是构造代码块2");
}
}
运行结果:
通过上面的程序运行结果,我们可以看出,不管构造代码块是在构造函数之后还是在构造函数之前,都是先运行构造代码块
然后在运行构造函数。构造函数通过重载,有两种初始化方式,一种是没有参数的,一种是有参数的。
如果不调用普通函数,普通函数是不能执行的。