黑马程序员——构造函数,构造代码块,静态代码块的区别
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所修饰的,都不可以使用this和super ,因为它是优先于对象所存在的,而this和super是表示所调用它的对象
过程:加载.class文件分配内存,静态代码块,默认构造函数的初始化,显示初始化,构造代码块,对应的构造函数初始化
静态什么时候使用:在使用不到本类特有属性的时候,就可以声明成静态的
一、构造函数
格式:
[修饰符] 类名(参数列表) { 构造函数中的执行语句; }
[修饰符] 类名(参数列表) { 构造函数中的执行语句; }作用:给对象进行初始化。
1、构造函数的特点:
1)构造函数与类名相同;
2)构造函数不返回任何值,也没有返回类型;
3)每一个类有零个或多个构造函数;
4)构造函数在创建对象时自动执行,一般不用显式调用。
现在,就上述几个需要说明的特点进一步进行解释:
特点1:注意java语言区分大小写;
特点2:因此,构造函数前面不可添加任何返回值类型(包括void),也不可以写return语句;
特点3:用户未给类定义构造函数时,编译器会自动添加默认的无参构造函数;一旦用户定义了构造函数,则不会产生默认的构造函数;多个构造函数是以重载的形式存在;
特点4:构造函数也可以显式调用,通过this语句和后面介绍的super语句。
二、构造代码块
格式:
{ 构造代码块中的执行语句; }
{ 构造代码块中的执行语句; }
作用:给对象进行初始化
特点:对象一建立就运行,而且优先于构造函数执行。
与构造函数的区别:
构造代码块是给所有对象进行统一的初始化,其定义的是不同对象共性的初始化内容;而构造函数是给对应的对象进行初始化。
三、静态代码块
格式:
static { 静态代码块中的执行语句; }
static { 静态代码块中的执行语句; }
作用:给类进行初始化。
特点:随着类的加载而执行,但只执行一次,且优先于主函数。
相关文章推荐
- 黑马程序员——IO 流总结
- 面试题:java GC是在什么时候,对什么东西,做了什么事情?
- 面试心得
- 程序员的开始,起飞
- 黑马程序员——OC中的Foundation
- 黑马程序员——OC中的分类
- 黑马程序员——OC中的类
- 黑马程序员——面向对象的三大特性
- 黑马程序员——OC中的核心语法
- 黑马程序员-------Block
- 不想当一辈子码农,这有份IT民工进阶手册
- 程序员常去的6个头条分享站点
- 蜂窝教育软件工程师培训
- 山东润达软件:优秀程序员的18大法则
- 黑马程序员——Foundation---NSMutableArray
- java 面试题三十二 mysql查询面试题
- 黑马程序员——面向对象
- 《剑指Offer》面试题:平衡二叉树
- 面试题32:从1到n整数中1出现的次数
- 黑马程序员——JavaSE之对单例枚举和反射的看法一