`

Java类中静态代码块、构造代码块、构造函数快速理解

    博客分类:
  • Java
阅读更多

 

package com.test;

public class Son extends Father{
	static{
		System.out.println("Son:静态代码块");
	}
	{
		System.out.println("Son:构造代码块");
	}
	public Son(){
		System.out.println("Son:构造函数");
	}
	public Son(String s){
		super(s);
		System.out.println("Son:构造函数" + s);
	}
	public static void main(String[] args) {
		System.out.println();
		Father fa = new Son("Son");
	}
}

 

package com.test;

public class Father {
	static{
		System.out.println("Father:静态代码块");
	}
	{
		System.out.println("Father:构造代码块");
	}
	public Father(){
		System.out.println("Father:构造函数");
	}
	public Father(String s){
		System.out.println("Father:构造函数" + s);
	}
}

 

执行结果:
Father:静态代码块
Son:静态代码块

Father:构造代码块
Father:构造函数Son
Son:构造代码块
Son:构造函数Son

 

得出结论:

 

1、执行顺序:静态代码块>构造代码块>构造函数。

 

2、静态代码块随类的声明而执行,而构造代码块和构造函数在一个类实例化后执行,其中构造代码块又优先于构造函数代码块。

3、子类没有用super(s)时,默认调用的是父类的无参构造函数块。

 

分享到:
评论

相关推荐

    Java的静态代码块、非静态代码块、构造函数

    Java的静态代码块、非静态代码块、构造函数的简单的java代码

    Java:静态代码块和构造函数执行顺序

     1 静态变量,静态代码块(类加载时执行,类不加载不执行)  2 实例变量,实例代码块(创建对象时才执行,不创建对象不执行)  3 构造函数,(创建对象时执行完2后再执行构造函数,不管构造函数是public还是private...

    java中静态代码块与构造方法的执行顺序判断

    对静态代码块以及构造函数的执行先后顺序,一直很迷惑,直到最近看到一段代码,发现终于弄懂了,所以这篇文章主要给大家介绍了关于如何判断java中静态代码块与构造方法的执行顺序的相关资料,需要的朋友可以参考下。

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

    Java开发技术大全(500个源代码).

    invokeMethod.java 同一个类中调用方法示例 invokeOther.java 类的外部调用方法示例 invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名...

    Java中this与super的区别

    this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。 要记住的几个关键点是: 在构造方法中this与super不能共存;其次有this或super出现的地方必须是构造方法的第1句; 静态方法...

    JAVA经典的题目一(含答案。8道经典)

    数组,类,构造函数,内存分配,静态代码块 java经典的几道题目,从基础中看到经典

    Java之static关键字

    一、模板类,里面包括:成员变量、静态变量、普通代码块、静态代码块、普通方法、静态方法、构造函数、静态内部类(包括:成员变量、静态变量、普通代码块、静态代码块、普通方法、静态方法、构造函数)。

    基于javatcpsocket通信的拆包和装包源码-java-:Java-

    this:代表对象,就是锁在函数所属对象的引用(在构造函数中必须是第一行) 静态方法:只能访问静态成员。不能使用this,super,静态变量存在方法区。成员变量在堆内存 静态代码块:有静态关键字标识的代码块,只执行...

    Java实现局域网内两点文件传输

    2. 在静态代码块中,初始化了一个DecimalFormat 对象 df用于格式化文件大小的显示。 3. server类的构造函数通过调用 super(SERVER_PORT)来创建一个服务器端的Socket。 4. load()方法是一个循环,用于接收客户端的...

    java 面试题 总结

    不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 接口(interface)...

    JAVA面试题最全集

    给定一个C语言函数,要求实现在java类中进行调用。 45.如何获得数组的长度? 46.访问修饰符“public/private/protected/缺省的修饰符”的使用 47.用关键字final修饰一个类或者方法时,有何意义? 48.掌握类和...

    疯狂JAVA讲义

    6.3.1 理解类成员 175 6.3.2 单例(Singleton)类 176 6.4 final修饰符 177 6.4.1 final变量 177 6.4.2 final方法 181 6.4.3 final类 182 6.4.4 不可变类 182 6.4.5 缓存实例的不可变类 186 6.5 抽象类 188 ...

    java编程基础,应用与实例

    5.11 构造函数 79 5.12 类的初始化 83 5.12.1 静态块 84 5.12.2 实例块 84 5.13 巩固练习 85 第6章 数组 86 6.1 基本数据类型数组 86 6.2 一维数组的初始化 88 6.3 对象数组 88 6.4 二维数组 ...

    JAVA—面向对象

    构造代码块和构造函数的区别: this: Static关键字 用法: 被修饰的成员具备以下特点: 注意 静态代码块: 特点: 实例变量和类变量的区别: 静态利弊: 工具类 继承: 概念: 好处: 知识点: 父子之间有相同的...

    举例说明Java中代码块的执行顺序

    主要介绍了举例说明Java中代码块的执行顺序,包括静态属性和非静态属性以及构造函数等相关的执行先后,需要的朋友可以参考下

    Java程序设计习题(含答案解析).doc

    有的类定义时可以不定义构造函数,所以构造函数不是必需的。( F ) 3.类及其属性、方法可以同时有一个以上的修饰符来修饰。( T ) 4.Java的屏幕坐标是以像素为单位,容器的左下角被定为坐标的起点。( F )(应该是左上...

    Java面试宝典-经典

    1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在...

Global site tag (gtag.js) - Google Analytics