根据你的问题,我猜想你肯定是觉得对象一创建时就会自动执行静态数据和构造函数,既然都是一样会被自动执行,为什么要搞出两种方式呢?区别在哪里?如果你是这样想的话,那我就针对这个做个实例:
class test6
{
static
{
System.out.println("静态代码");
}
public test6()
{
System.out.println("构造函数");
}
}
class test7
{
public static void main(String args[])
{
new test6();
new test6();
new test6();
}
}
输出结果为:
静态代码
构造函数
构造函数
构造函数
在这个例子里我们就可以看到一些不同了,如:
1、静态代码的执行要早于构造函数
2、不管创建对象多少次,静态代码只在第一次创建对象时执行一次
3、对象每创建一次,构造函数就执行一次
关于其他的不同还有很多,我就不多说了,按照黑马的视频看下去,再多敲代码,随着学习的深入我想你一定会慢慢的知道什么时候把代码写在静态代码块里比较好,什么时候写在构造函数里的比较好。 |