在示例中我看不出初始化块和构造方法的区别,两对大括号中间的内容基本是一样的,怎样确定哪个是构造方法?是否是紧跟在后面的就是构造的,其他的就不是了呢
public class HelloWorld {
String name; // 声明变量name
String sex; // 声明变量sex
static int age;// 声明静态变量age
// 构造方法, 构造函数的方法名一般和类重名, HelloWorld()方法名
public HelloWorld () {
System.out.println("通过构造方法初始化name");
name = "tom";
}
// 初始化块 初始化块就是一对大括号,没有访问修饰符和方法名阿
{
System.out.println("通过初始化块初始化sex");
sex = "男";
}
// 静态初始化块 static是关键字, 静态...也没有访问修饰符和方法名阿
static {
System.out.println("通过静态初始化块初始化age");
age = 20;
}
静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。