静态代码块 构造代码块 构造函数 区别

时间:2021-06-09 23:50:45
构造函数:用于给对象进行初始化,是给与之对应的对象进行初始化,它具有针对性,函数中的一种。
特点:
1:该函数的名称和所在类的名称相同。
2:不需要定义返回值类型。
3:该函数没有具体的返回值。
记住:所有对象创建时,都需要初始化才可以使用。


注意事项:一个类在定义时,如果没有定义过构造函数,那么该类中会自动生成一个空参数的构造函数,为了方便该类创建对象,完成初始化。如果在类中自定义了构造函数,那么默认的构造函数就没有了。


一个类中,可以有多个构造函数,因为它们的函数名称都相同,所以只能通过参数列表来区分。所以,一个类中如果出现多个构造函数。它们的存在是以重载体现的。


构造函数和一般函数有什么区别呢?
1:两个函数定义格式不同。
2:构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次。
    一般函数,是对象创建后,需要调用才执行,可以被调用多次。
   
什么时候使用构造函数呢?
分析事物时,发现具体事物一出现,就具备了一些特征,那就将这些特征定义到构造函数内。


构造代码块和构造函数有什么区别?
构造代码块:是给所有的对象进行初始化,也就是说,所有的对象都会调用一个代码块。只要对象一建立。就会调用这个代码块。
构造函数:是给与之对应的对象进行初始化。它具有针对性。




静态代码块:就是一个有静态关键字标示的一个代码块区域。定义在类中。
作用:可以完成类的初始化。静态代码块随着类的加载而执行,而且只执行一次(new 多个对象就只执行一次)。如果和主函数在同一类中,优先于主函数执行。


静态代码块、构造代码块、构造函数同时存在时的执行顺序:静态代码块 -->构造代码块 --> 构造函数;
-------------------
构造代码块。
     作用:给所有对象进行初始化。
     对象一建立就运行,而且优先于构造函数执行。
和构造函数的区别:
     构造代码块是给所有对象进行统一初始化,
     而构造函数是给对应的对象初始化。
        构造代码快中定义的是不同对象共性的初始化内容。


静态代码块:
    格式:  static {静态代码块执行的语句}


    特点:随着类的加载而执行,只执行一次,并优先于主函数执行,是对类初始化的。 


class StaticCode
{
int num = 9;
StaticCode()
{
System.out.println("b");
}


static
{
System.out.println("a");
}
{
System.out.println("c");
}


StaticCode(int x)
{
System.out.println("d");
}
public static void show()
{
System.out.println("show run");
}
}


class StaticCodeDemo 
{
static
{
System.out.println("b");
}
public static void main(String[] args) 
{
new StaticCode(4);
}
}
复制代码
这段代码运行结果:
b
a
c
d