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方法");
}
}
java代码块
最新推荐文章于 2024-10-11 17:30:36 发布