您的位置:首页 > 职场人生

黑马程序员——构造函数,构造代码块,静态代码块的区别

2015-10-12 10:09 405 查看
------<a href="http://www.itheima.com"target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

构造函数是给对应对象进行初始化的,是在类一建立就存在的,构造函数可以重载,根据对应的参数找对应的方法

构造代码块是给类的所有对象进行初始化的,优先于别的方法先运行,只要类的对象一建立,它就运行。

静态代码块是给类进行初始化的,只能被静态的方法或者静态的属性调用,因为它是在类一创建就建立,优先于对象存在

所有被静态static所修饰的,都不可以使用this和super ,因为它是优先于对象所存在的,而this和super是表示所调用它的对象

过程:加载.class文件分配内存,静态代码块,默认构造函数的初始化,显示初始化,构造代码块,对应的构造函数初始化

静态什么时候使用:在使用不到本类特有属性的时候,就可以声明成静态的


一、构造函数

格式:

[修饰符] 类名(参数列表) { 构造函数中的执行语句; }

[修饰符] 类名(参数列表)
{
构造函数中的执行语句;
}
作用:给对象进行初始化。

1、构造函数的特点:

1)构造函数与类名相同;

2)构造函数不返回任何值,也没有返回类型;

3)每一个类有零个或多个构造函数;

4)构造函数在创建对象时自动执行,一般不用显式调用。

现在,就上述几个需要说明的特点进一步进行解释:

特点1:注意java语言区分大小写

特点2:因此,构造函数前面不可添加任何返回值类型(包括void),也不可以写return语句

特点3:用户未给类定义构造函数时,编译器会自动添加默认的无参构造函数;一旦用户定义了构造函数,则不会产生默认的构造函数;多个构造函数是以重载的形式存在

特点4:构造函数也可以显式调用,通过this语句和后面介绍的super语句。

二、构造代码块

格式:

{ 构造代码块中的执行语句; }

{
构造代码块中的执行语句;
}


作用:给对象进行初始化

特点:对象一建立就运行,而且优先于构造函数执行。

与构造函数的区别:

构造代码块是给所有对象进行统一的初始化,其定义的是不同对象共性的初始化内容;而构造函数是给对应的对象进行初始化。

三、静态代码块

格式:

static { 静态代码块中的执行语句; }

static
{
静态代码块中的执行语句;
}

作用:给类进行初始化。

特点:随着类的加载而执行,但只执行一次,且优先于主函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: