黑马程序员_java基础学习笔记之(构造函数&构造代码块&静态代码块)的区别
2013-12-10 12:54
399 查看
------- <ahref="http://www.itheima.com" target="blank">android培训</a>、<ahref="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
在基础学习中,我常常会概念模糊,特作此学习笔记,进行一下对比,思路自然就清晰了。
构造函数
构造函数定义:构造函数是与类名相同,但没有返回值的函数。
例子:
作用:给对象初始化的。
构造函数的使用方法:
构造函数的作用是对对象进行初始化,当一个类中没有定义构造函数时,系统默认为该类提供默认构造函数(参数为空)。
在创建对象时,调用对应的构造函数。当用户自定义构造函数时,系统的就不提供默认构造函数。
创建一个对象时,只调用一次构造函数。
特点:1.函数名与类名相同
2.不用定义返回值类型
3.不可以写return语句
注意:1.默认的构造函数的特点(当一个类中没有定义构造函数时,系统默认该类提供的构造函数,参数为空)。
当自定义构造函数时,系统的就不提供默认构造函数。创建一个对象时,只调用一次构造函数。
2.多个构造函数是以重载的形式存在的。
构造代码块
作用:
1. 构造代码快的作用是对对象进行初始化。
2. 先于构造函数,即在调用构造函数之前执行构造代码快。
构造代码块和构造函数的区别:
(1)构造代码快是给所有的对象进行统一初始化。
(2)构造函数是给对应的一个对象进行初始化。
例:
静态代码块
静态代码块的格式:
//静态代码块格式
static{
//静态代码块中的语句
}
特点:随着类的加载而执行,只执行一次,并优先于主函数执行。
作用:给类进行初始化。
静态代码快和构造代码快的区别:
1.static 代码块优先于构造代码块执行,构造代码块优先于构造函数执行。
2.static 代码块是给类加载而执行的,而构造代码块是随着对象的创建而执行的
3.static 代码块只执行一次,而构造代码块是创建几个对象就执行几次。
4.static 代码块中不能访问非static的成员变量,而构造代码块可以访问。
过程解析:1.StaticCode类进入内存:这时最先执行的是是StaticCode类中的静态代码块。因为它随着类的加载而执行,只执行一次,并优先于主函数执行。
所以输出为: StaticCode1
StaticCode2
2.执行main函数,对创建的StaticDemo的对象加载,并同时执行该类的静态代码块。静态代码块只执行一次。
输出为:StaticDemo
Constructor
Constructor
注意:当静态代码块所在类的的对象为空时,不执行该类的任何操作,所有执行static代码快是没有任何意义的。
静态代码块优先于构造代码块执行。
在基础学习中,我常常会概念模糊,特作此学习笔记,进行一下对比,思路自然就清晰了。
构造函数
构造函数定义:构造函数是与类名相同,但没有返回值的函数。
例子:
class Person { //构造函数 public Person() {} } |
构造函数的使用方法:
构造函数的作用是对对象进行初始化,当一个类中没有定义构造函数时,系统默认为该类提供默认构造函数(参数为空)。
在创建对象时,调用对应的构造函数。当用户自定义构造函数时,系统的就不提供默认构造函数。
创建一个对象时,只调用一次构造函数。
特点:1.函数名与类名相同
2.不用定义返回值类型
3.不可以写return语句
注意:1.默认的构造函数的特点(当一个类中没有定义构造函数时,系统默认该类提供的构造函数,参数为空)。
当自定义构造函数时,系统的就不提供默认构造函数。创建一个对象时,只调用一次构造函数。
2.多个构造函数是以重载的形式存在的。
构造代码块
作用:
1. 构造代码快的作用是对对象进行初始化。
2. 先于构造函数,即在调用构造函数之前执行构造代码快。
构造代码块和构造函数的区别:
(1)构造代码快是给所有的对象进行统一初始化。
(2)构造函数是给对应的一个对象进行初始化。
例:
class Person { //构造代码块 { System.out.println(“personrun”); } //构造函数 public Person() { System.out.println(“Constructor”); } } public class Test { public static voidmain(String[] args) { person p1 = new person(); person p2 = new person(); } } //运行的结果: person run Constructor person run Constructor |
静态代码块的格式:
//静态代码块格式
static{
//静态代码块中的语句
}
特点:随着类的加载而执行,只执行一次,并优先于主函数执行。
作用:给类进行初始化。
静态代码快和构造代码快的区别:
1.static 代码块优先于构造代码块执行,构造代码块优先于构造函数执行。
2.static 代码块是给类加载而执行的,而构造代码块是随着对象的创建而执行的
3.static 代码块只执行一次,而构造代码块是创建几个对象就执行几次。
4.static 代码块中不能访问非static的成员变量,而构造代码块可以访问。
class staticDemo { //构造代码块 { System.out.println(“Constructor”); } //静态代码块 Static { System.out.println("StaticDemo"); } } public class StaticCode { //静态代码块 static { System.out.println(“StaticCode1”); } public static void main(String[] args) { new StaticDemo(); new StaticDemo();//虽然创建了两个StaticDemo,但只输出一次“StaticDemo”,因为静态代码块只能加再一次。 } //静态代码块 static{ System.out.println(“StaticCode2”); } } 运行结果: StaticCode1 StaticCode2 StaticDemo Constructor Constructor |
所以输出为: StaticCode1
StaticCode2
2.执行main函数,对创建的StaticDemo的对象加载,并同时执行该类的静态代码块。静态代码块只执行一次。
输出为:StaticDemo
Constructor
Constructor
注意:当静态代码块所在类的的对象为空时,不执行该类的任何操作,所有执行static代码快是没有任何意义的。
静态代码块优先于构造代码块执行。
相关文章推荐
- 【Java学习笔记之十七】Java中普通代码块,构造代码块,静态代码块区别及代码示例分析
- 黑马程序员--Java基础学习笔记【构造器、静态】
- 5.1JAVA基础复习——JAVA中的静态代码块、构造代码块、构造函数、局部代码块区别
- 黑马程序员——Java基础---面向对象(面向对象,类,对象,匿名对象,封装,构造函数,构造代码块,this,static,main,帮助文档,静态代码块,单例)
- 黑马程序员——Java基础---静态代码块和构造方法执行顺序
- 【java基础】 静态 关键字 static(构造函数、构造代码块、静态代码块的区别)
- java基础之静态代码块,局部代码块,构造代码块区别。
- 黑马程序员—Java基础学习笔记之(throws与throw的区别)
- Java学习笔记——静态代码块,构造代码块,构造函数间的执行顺序
- 【Java基础】2、Java中普通代码块,构造代码块,静态代码块区别及代码示例
- Java EE学习笔记之——构造代码块、静态代码块、构造方法、方法的区别
- 黑马程序员---2015.6.14java基础笔记--静态方--静态代码块--单例模式
- 黑马程序员---2015.6.13java基础笔记---构造代码块--this--static函数
- 笔记-java基础,静态代码块,构造代码块,构造函数。
- 黑马程序员--Java基础学习笔记【正则表达式、常用API】
- 黑马程序员 JAVA基础学习笔记 内部类等
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
- 黑马程序员-java基础学习笔记第二篇
- 黑马程序员_java基础学习笔记05_API常用类
- Java中普通代码块,构造代码块,静态代码块区别及代码示例