基本介绍
代码块又称位初始化块,属于类中的成员【即是类的一部分】,类似于方法,将逻辑语言封装在方法体重,通过{}保卫起来
但和方法不同,没有方法名,没有发挥,没有参数,只有方法体,而且不用通过对象或类显示调用,而是加载类时,或创建对象时隐式调用。
基本语法
[修饰符]{
代码
};
注意
;
可以写上,也可以省略代码块的好处和演示
package top.ltyzqhh.thread.study;
public class codeblock_ {
public static void main(String[] args) {
Movie movie1 = new Movie("泰坦尼克号");
Movie movie2 = new Movie("泰坦尼克号",20);
Movie movie3 = new Movie("泰坦尼克号",20,"卡梅隆");
}
}
class Movie{
private String name;
private double price;
private String director;
{
System.out.println("电影开始了");
System.out.println("广告开始了");
}
public Movie(String name) {
System.out.println(1);
this.name = name;
}
public Movie(String name, double price) {
System.out.println(2);
this.name = name;
this.price = price;
}
public Movie(String name, double price, String director) {
System.out.println(3);
this.name = name;
this.price = price;
this.director = director;
}
}
输出结果
static代码块也叫静态代码块,作用就是对类进行初始化,而且它随着类的加载而自信,并且只会执行一次,如果是普通代码块,没创建一个对象,就执行。
类什么时候被加载
普通代码块,在new对象时,被调用,而且是每创建一个对象,就调用一次
如果只是使用类的静态成员时,普通代码块并不会执行
创建一个对象时,在一个类 调用顺序是:(重点、难点)
class a{
public a(){//构造器
//这里有隐藏的执行要求
//(1). super();//会默认调用父类无参构造器的方法
//(2). 调用普通代码块
System.out.println("ok");
}
}