您的位置 首页 > 数码极客

「代码块」代码块有几种…

什么是代码块

1. 什么是代码块

①初始化块(代码块)作用:

对Java对象进行初始化

②程序的执行顺序:

声明成员变量的默认值

显式初始化、多个初始化块依次被执行(同级别下按先后顺序执行)

构造器再对成员进行赋值操作

2.静态代码块

一个类中初始化块若有修饰符,则只能被static修饰,称为静态代码块(static block ),当类被载入时,类属性的声明和静态代码块先后顺序被执行,且只被执行一次。

static块通常用于初始化static (类)属性

class Person {

public static int total;

static {

total = 100;//为total赋初值

}

…… //其它属性或方法声明

}

3. 非静态代码块

概念:没有static修饰的代码块

特点:

① 可以有输出语句。

② 可以对类的属性、类的声明进行初始化操作。

③ 可以调用静态的变量或方法。

④ 若有多个非静态的代码块,那么按照从上到下的顺序依次执行。

⑤ 每次创建对象的时候,都会执行一次。且先于构造器执行

4 静态和非静态关系

非静态的本质是什么

非静态也可以称为动态, 意思是确定的, 在程序中对象的创建是不确定的, 因为只要new就会产生对象, 所以非静态的概念必然是和对象相关的.

静态的本质是什么

静态的就是确定的, 唯一的, 在程序中是稳定的, 和有无对象无关, 也和有多少对象无关, 只和类相关, 所以, 所以静态成员是稳定并唯一的.

如何互相使用

在非静态环境中可以中直接使用静态成员, 因为在非静态环境中, 对象必然是已经创建了, 对象既然已经创建, 类也肯定已经加载过了, 所以在使用上并不会有问题.

但是 在静态环境中却不可以直接使用非静态成员, 因为静态成员可以使用, 不要求对象,只要求类加载好就可以了, 但是类加载, 并不意味着一定要创建对象, 并且对象创建在哪里也不知道. 所以在静态环境中不可以直接访问非静态成员, 因为非静态成员隶属于对象, 所以在静态环境中只能通过创建对象, 并再通过对象来间接访问非静态成员.

执行顺序

1. 创建对象时, 在同一个类中执行顺序

在同一个类中, 如果创建这个类的对象, 执行顺序是

静态属性声明

静态语句块或静态属性的显式初始化

非静态属性声明

非静态语句块或非静态属性的显式初始化

构造器

2. 创建对象时, 有继承关系存在时执行顺序

a) 父类的静态属性声明

b) 父类的静态语句块或父类静态属性的显式赋值

c) 子类的静态属性声明

d) 子类的静态语句块或子类静态属性的显式赋值

e) 父类非静态属性的声明

f) 子类非静态属性的声明

g) 父类的非静态语句块或父类非静态属性的显式赋值

h) 父类构造器

i) 子类的非静态语句块或子类非静态属性的显式赋值

j) 子类构造器


了解更多內容:

java 枚举的定义与用法

java技术事务的传播行为

java数组的语法和使用步骤

Java 的抽象类是什么

java二维数组的使用步骤

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“代码块,代码块有几种,代码块是什么意思,代码块和构造方法执行顺序,代码块怎么用”边界阅读