![1577e2c3ab46de5e532c0e13271fa592.png](https://i-blog.csdnimg.cn/blog_migrate/1d2ded7414c25c69e9944ddfa5f5c878.jpeg)
接上一篇
Java 中的 static 使用之静态初始化块
Java 中可以通过初始化块进行数据赋值。如:
public class Telphone{
String name;//定义一个成员变量
//通过初始化块为成员变量赋值
{
name="iphone";
}
}
在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。
需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
public class Telphone{
int num1;//声明变量num1
int num2;//声明变量num2
static int num3;//静态声明变量num2
public Telphone(){ //创建构造方法
num1=91;
System.out.println("通过构造方法为sum1赋值!");
}
{ //初始化块
num2=74;
System.out.println("通过初始化块为变量num2赋值!");
}
static { //静态初始化块
num3=83;
System.out.println("通过静态初始化块为变量num3赋值!");
}
public static void main(String[] args){
Telphone phone=new Telphone();//创建类的对象phone
System.out.println("num1:"+phone.num1);
System.out.println("num2:"+phone.num2);
System.out.println("num3:"+num3);
Telphone phone2=new Telphone();//再创建类的对象phone2,再次创建实例,再次执行方法中代码(除静态初始化块-只优先执行一次)
}
}
输出结果如下:
num1:91
num2:74
num3:83
通过初始化块为变量num2赋值!
通过构造方法为sum1赋值!
通过初始化块为变量num2赋值!
通过构造方法为sum1赋值!