类成员(代码块)

简介: 类成员(代码块)

代码块

在Java中,使用{}括起来的代码被称为代码块(Code block),根据其位置和声明的不同,可以分为:

局部代码块。

构造代码块。

同步代码块。

静态代码块。

1.代码块(或初始化块)的作用

  • 对Java类或对象进行初始化

2.代码块(或初始化块)的分类:

  • 一个类中代码块若有修饰符,则只能被static修饰,称为静态代码块 (static block),没有使用static修饰的,为非静态代码块。
  • static代码块通常用于初始化static的属性
class Person {
public static int total;
static {
total = 100;//为total赋初值
}
…… //其它属性或方法声明
}
  • 静态代码块:用static 修饰的代码块
  1. 可以有输出语句。
  2. 可以对类的属性、类的声明进行初始化操作。
  3. 不可以对非静态的属性初始化。即:不可以调用非静态的属性和方法。
  4. 若有多个静态的代码块,那么按照从上到下的顺序依次执行。
  5. 静态代码块的执行要先于非静态代码块。
  6. 静态代码块随着类的加载而加载,且只执行一次
  • 非静态代码块:没有static修饰的代码块
  1. 可以有输出语句。
  2. 可以对类的属性、类的声明进行初始化操作。
  3. 除了调用非静态的结构外,还可以调用静态的变量或方法。
  4. 若有多个非静态的代码块,那么按照从上到下的顺序依次执行。
  5. 每次创建对象的时候,都会执行一次。且先于构造器执行。

静态初始化块举例:

class Person {
public static int total;
static {
total = 100;
System.out.println("in static block!");
}
}
public class PersonTest {
public static void main(String[] args) {
System.out.println("total = " + Person.total);
System.out.println("total = " + Person.total);
  }
}
输出:
in static block
total=100
total=100

由上述例子可得出结论

总结:程序中成员变量赋值的执行顺序

1.声明成员变量的默认初始化

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

3.构造器再对成员进行初始化操作

4.通过”对象.属性”或”对象.方法”的方式,可多次给属性赋值

相关文章
|
1月前
|
JavaScript 前端开发 开发者
创建一个私有变量和私有方法的闭包
【10月更文挑战第26天】可以在JavaScript中创建具有私有变量和私有方法的闭包,实现数据的封装和隐藏,提高代码的可维护性和安全性。不同的方式适用于不同的场景,开发者可以根据具体的需求选择合适的方法来创建闭包。
实例详解局部代码块,构造代码块,静态代码块
实例详解局部代码块,构造代码块,静态代码块
|
7月前
|
存储 监控 编译器
【C++】static关键字及其修饰的静态成员变量/函数详解
【C++】static关键字及其修饰的静态成员变量/函数详解
191 3
|
7月前
|
Python
静态属性详解:代码揭秘与实用指南
静态属性详解:代码揭秘与实用指南
48 1
|
编译器 C++
C++ 类与const关键字
C++ 类与const关键字
47 0
|
7月前
|
编译器
static关键字修饰成员变量与成员函数
1. static概念 声明 为static的类成员称为类的静态成员,用static修饰的成员变量,称为静态成员变量;用static修饰的成员函数,称为静态成员函数,都存放在堆区。 静态成员变量一定要在类外进行初始化。
136 0
|
安全 Java 编译器
代码块 继承 多态
代码块 继承 多态
53 0
|
Java 编译器
静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(上)
哈喽,大家好,我是指北君。 在Java中,静态代码块、构造代码块、构造函数、普通代码块的执行顺序是一个笔试的考点,通过这篇文章希望大家能彻底了解它们之间的执行顺序。
静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(上)

热门文章

最新文章