前言
Java 的构造方法,是在创建对象的时候 JVM 自动会执行的一种方法。另外在 Java 中还有一个名为“构造代码块”的东西,他和构造方法一样都是在创建对象的时候会自动执行的,构造代码块要写在与构造方法同一级。
代码块的类别有如下三种:
- 构造代码块
- 局部代码块
- 静态代码块
构造代码块为其中一种。
代码
要想懂得起,还是要看看代码,如下:
public class StructureCodeBlock {
// 构造代码块
{System.out.println("This is StructureCodeBlock");
}
public static void main(String[] args){StructureCodeBlock s = new StructureCodeBlock();
}
}
优先级
若在一个类中同时含有成员变量、构造方法、构造代码块的时候,优先顺序如下:
成员变量 | 构造代码块 > 构造方法
成员变量 | 构造代码块 > 构造方法
但是 Why?接着往下看:
- Java 编译器编译一个 Java 源文件的时,会把成员变量的声明语句提至一个类的最前端。
- 成员变量的初始化以及代码块的代码都是会被移至构造方法中去执行。
- 成员变量的初始化与构造代码块的代码是按照当前代码的顺序去执行的,构造方法中的原代码会最后进行执行。
可以看看如下代码就懂了。
public class StructureCodeBlock {
// 成员变量
public int num = 1000;
// 构造方法
public StructureCodeBlock(){this.num = 3000;}
// 构造代码块
{this.num = 2000;}
public static void main(String[] args){StructureCodeBlock s = new StructureCodeBlock();
System.out.println(s.num);
}
}
最终的运行结果为:3000
声明:本文为原创文章,版权归沃付网络所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Java构造方法07/05
- ♥ 使用Zxing生成二维码并输出到Web07/05
- ♥ PHP7在Linux怎样开启配置使用MongoDB07/05
- ♥ 主流搜索引擎sitemap入口大全07/04
- ♥ 使用PIL中Image.rotate()将回转后的非图像区域变色07/05
- ♥ 在线外链提交工具千万别乱使用06/26