java代码块

package object;
/*
 * 		代码块(初始化块)
 * 1、代码块作用:初始化类、对象(类似构造器)
 * 	--加载类的时候或者创建对象的时候隐式调用。
 * 2、只能用static修饰
 * 3、基本语法
	[修饰符]{
	代码输入,输出,方法调用,循环,判断
	};
 * 
 * 4、代码块好处
 * 
 * 1、对构造器功能的一种补充
   2、如果多个构造器中都有重复的语句,可以放到代码块中
      提高代码的复用性
      
   5、静态代码块与普通代码块区别
   
      	1.静态代码块对类进行初始化它随着类的加载进行初始化,
      	而且随着类的加载而被执行并且只会执行一次
      	如果是普通代码块,每次创建一个对象就执行一次。
     --一个初始化类的信息,一个初始化属性的信息
      		
      	2.静态执行优先于普通
      	3.静态代码块只能用静态属性、静态方法
      	非静态代码块都可以使用
      	
      	
     6.静态代码块的执行顺序:静态代码块----->非静态代码块-------->构造函数 	
     
     7.	对属性可以赋值的位置
     1.默认初始化
     2.显示初始化/代码块中赋值
     3.构造器中初始化
     4.通过对象调
 */
public class CodeBlock {
	public static void main(String[] args)
	{
		new CodeExtendsSon();
		System.out.println("*********");
		new CodeExtendsSon();
	}
	

}
class	TestCodeBlock
{
	int number;
	float sum;
	public TestCodeBlock(int number) {
		
		super();
		//System.out.println("代码块");
		this.number = number;
	}
	public TestCodeBlock(int number, float sum) {
		super();
		//System.out.println("代码块");
		this.number = number;
		this.sum = sum;
	}
	//如果多个构造器中都有重复的语句,可以放到代码块中
	{
		System.out.println("代码块");
	}
	//每创建一个对象就执行一次代码块
}



		/*
		 * 在继承中看代码块
		 */
		



class CodeExtendsFayher
{
	static {
		System.out.println("父类的静态代码块");
		
	}
	CodeExtendsFayher()
	{
		System.out.println("父类的构造器");
	}
	{
		System.out.println("父类的非静态代码块");
	}
	public static void main(String[] args)
	{
		System.out.println("父类的main方法");
		
	}
}
class CodeExtendsSon extends CodeExtendsFayher
{
	static {
		System.out.println("子类的静态代码块");
		
	}
	CodeExtendsSon()
	{
		System.out.println("子类的构造器");
	}
	{
		System.out.println("子类的非静态代码块");
	}
	public static void main(String[] args)
	{
		System.out.println("子类的main方法");
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值