当前位置:编程学习 > JAVA >>

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

public class testStatic extends Fa{

	static{
		System.out.println("son:静态代码块");
	}
	{
		System.out.println("son:构造代码块");
	}
	public testStatic(){
		System.out.println("son:构造函数块");
	}
	public testStatic(String s){
		super(s);
		System.out.println("son:构造函数块"+s);
	}
	public static void main(String[] args) {
		testStatic te;
		System.out.println();
		Fa t=new testStatic("ai");
	}

}

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

 


 
输出结果:
==============
fa:静态代码块
son:静态代码块
 
 
fa:构造代码块
fa:构造函数块ai
son:构造代码块
son:构造函数块ai
===============
得出结论:
1.执行顺序:静态代码>构造代码块>构造函数
2.静态代码块随类的声明而执行,而构造代码块和构造方法则在一个类实例化后执行,其中构造代码块又优先于构造方法执行
3.子类testStatic没有用super(s)时,默认调用fa的无参构造函数即输出:fa:构造函数块
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,