package com.fs.pojo;
public class Stu {
public int age;
public String name;
{
name = "haha";
System.out.println(name);
}
}
初始化代码块在构建对象的时候会执行,以下代码的执行结果是打印2次 haha
package com.fs.test;
import com.fs.pojo.Stu;
public class StuTest {
public static void main(String[] args) {
Stu stu = new Stu();
Stu stu2 = new Stu();
}
}
静态代码块
使用staic修饰的代码块叫做静态代码块
package com.fs.pojo;
public class Stu {
public int age;
public String name;
public static String sex;
{
name = "haha";
System.out.println(name);
}
// 静态代码块
static {
sex = "男";
System.out.println("我们18071班的学生都是:" + sex + "的");
}
}
package com.fs.test;
import com.fs.pojo.Stu;
public class StuTest {
public static void main(String[] args) {
Stu stu = new Stu();
Stu stu2 = new Stu();
}
}
package com.fs.pojo;
public class Stu2 {
private String name;
private String age;
{
System.out.println("初始化代码块被调用了");
name = "liujie";
if (name.indexOf("l") > -1) {
System.out.println("你这是非法名字");
} else {
System.out.println("名字通过");
}
}
static {
System.out.println("静态代码块被调用了-------------");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Stu2() {
}
public Stu2(String name, String age) {
this.name = name;
this.age = age;
System.out.println("构造方法被调用了");
}
public static void main(String[] args) {
Stu2 stu2 = new Stu2("刘杰", "100");
stu2.setAge("22");
Stu2 stu22 = new Stu2("lzl", "32");
System.out.println(stu22.name);
System.out.println(stu2.name);
}
// 调用顺序:静态代码块(只调用一次)--》初始化代码块 --》构造方法
// 静态代码块被调用了-------------
// 初始化代码块被调用了
// 你这是非法名字
// 构造方法被调用了
// 初始化代码块被调用了
// 你这是非法名字
// 构造方法被调用了
// lzl
// 刘杰
}