day2_学习静态代码块和构造代码块

.java源文件 -> javac(编译器)编译 -> .class字节码文件 -> […]

2020年8月8日

.java源文件 -> javac(编译器)编译 -> .class字节码文件 -> java运行字节码文件
反编译工具
.class字节码文件 -> 反编译工具 -> .java源文件
class 类名 {
成员变量
成员方法
构造方法
代码块
}
目标:学习静态代码块和构造代码块
讲解:
什么是代码块:
{}
静态代码块:
static {
}
构造代码块/实例代码块
{}
静态代码块和构造代码块都是放在类中方法外(成员位置)
执行效果:
我是静态代码块!
我是构造代码块!
我是构造方法!!!
我是构造代码块!
我是构造方法!!!
结论:
静态代码块在类加载的时候执行一次
每次执行构造方法前都先执行构造代码块
静态代码块的作用:
只要执行一次的代码就放到静态代码块中(数据库驱动加载)
给静态成员变量赋值
小结:
1.静态代码块格式:
static {
}
2.构造代码块/实例代码块:
{}

随堂代码:

//测试类
public class Demo17 {
    public static void main(String[] args) {
        Dog d1 = new Dog();

        Dog d2 = new Dog();
    }
}

//Dog类
public class Dog {
    private String name;
    private int age;
    private static int x;

//    静态代码块
    static {
        System.out.println("我是静态代码块!");
        // 给静态成员变量赋值
        x = 20;
    }

    // 构造代码块
    {
        System.out.println("我是构造代码块!");
    }

    public Dog() {
        System.out.println("我是构造方法!!!");
    }

    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

 

打赏 0

共有 0 条评论

隐藏
变装