Java_代码块 总结
概念
代码块:在Java中,使用{}括起来的代码被称为代码块。 代码块主要有:局部代码块、构造代码块、静态代码块。 其中,局部代码块和构造代码块统称为非静态代码块。 因此,本文主要是区别非静态代码块与静态代码块的执行步骤与区别。
提示:以下是本篇文章正文内容,下面案例可供参考吖
一、作用
给所有对象进行初始化。
【补充】
代码块与构造器的区别:
(1)构造器主要是用于对象的初始化、创建对象。
(2)代码块只能给对象初始化,不能创建对象。
二、代码块的执行顺序
1.初始化的方式
代码块执行的大致顺序:
0、静态代码块在非静态代码块之前执行(静态代码块在整个流程只执行一次)
1、默认初始化
2、显式初始化 / 代码块初始化
3、构造器初始化
4、对象.属性访问
2.静态代码块 & 非静态代码块的初始化顺序
代码如下(示例):
public class CodeBlocks {
// 静态变量
public static int b = 2;
// 静态代码块
static {
A = 88;
System.out.println("这是静态代码块1,这里有一个A,是一个常量");
}
private static final int A;// 静态的常量
static {
// 静态的代码块不能访问非静态的属性
// a=1;
b = 22;
System.out.println("这是静态代码块2:这是常量A的值:" + A + "\t静态变量b:" + b + "\t");
}
// 非静态的代码块
{
a = 111;
b = 222;
System.out.println("这是非静态代码块1" + "" + "");
}
public int a = 1;// 非静态变量
{
a = 1111;
b = 2222;
System.out.println("这是非静态代码块1");
}
// 构造器
public CodeBlocks() {
// this.a = 11111; 是否用用this关键字均可
a = 11111;
b = 22222;
System.out.println("这是构造器的输出");
}
public CodeBlocks(int a) {
b = 001100;
System.out.println("这是构造器的输出");
}
// 方法
public void show() {
this.a = 111111;
b = 122222;
System.out.println("这是方法的输出:" + a + "\t" + b);
}
public static void main(String[] args) {
CodeBlocks codeBlocks1 = new CodeBlocks();
System.out.println("创建第一个对象时,最终输出的a:" + codeBlocks1.a + "\tb:" + b);
System.out.println();
CodeBlocks codeBlocks2 = new CodeBlocks();
System.out.println("创建第二个对象时,最终输出的a:" + codeBlocks2.a + "\tb:" + b);
System.out.println();
CodeBlocks codeBlocks3 = new CodeBlocks(98889);
System.out.println("创建第二个对象时,最终输出的a:" + codeBlocks3.a + "\tb:" + b);
codeBlocks1.show();
}
}
- 点赞
- 收藏
- 关注作者
评论(0)