普通代码块
- 格式:
{
代码
}
- 作用及性质:
普通代码块的作用是统一初始化对象,当对象中有一类对象有统一的事情时,就可以将这些统一的事情写到代码块中。
//不使用代码块
public class Demo1 {
private String name;
public Demo1(String name) {
this.name = name;
}
public Demo1() {
}
//重写toString方法
@Override
public String toString() {
return "Demo1{" +
"name='" + name + '\'' +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//未使用普通代码块
public class Test {
public static void main(String[] args) {
Demo1 demo1 = new Demo1();
Demo1 demo2 = new Demo1();
Demo1 demo3 = new Demo1();
System.out.println(demo1.getName());
System.out.println(demo2.getName());
System.out.println(demo3.getName());
}
}
执行结果:
每一个对象都需要赋值,如果不赋值则默认为null.
//使用代码块
public class Demo1 {
private String name;
public Demo1(String name) {
this.name = name;
}
public Demo1() {
}
//重写toString方法
@Override
public String toString() {
return "Demo1{" +
"name='" + name + '\'' +
'}';
}
//普通代码块,统一初始化对象
{
this.name=("dog");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Test {
public static void main(String[] args) {
Demo1 demo1 = new Demo1();
Demo1 demo2 = new Demo1();
Demo1 demo3 = new Demo1();
System.out.println(demo1.getName());
System.out.println(demo2.getName());
System.out.println(demo3.getName());
}
}
不需要给对象分别赋值,在代码块中统一赋值。
- 普通代码块先于构造方法执行:
在普通代码块中添加代码:
{
this.name=("dog");
System.out.println("普通代码块");//添加代码
}
在构造方法中添加代码:
public Demo1() {
System.out.println("构造方法");
}
所以普通代码块先于构造方法执行。