构造方法:实例化对象,分无参构造方法和有参构造方法。
1.类中没写构造方法,默认无参构造方法。
这里用到了lombok的几个注解:
@Data 生成get、set、equals、hashCode、canEqual、toString方法
@AllArgsConstructor 生成全参构造方法
@NoArgsConstructor 生成无参构造方法
/**
* 默认会有一个无参构造方法
*
*/
@Data
//@AllArgsConstructor
//@NoArgsConstructor
public class Persion {
private String name;
private Integer eag;
}
/**
* 测试类
*/
public class Test001 {
public static void main(String[] args) {
Persion persion = new Persion("小明", 11);//报错
Persion persion2 = new Persion();
System.out.println(persion);
}
}
通过测试,我们可以new Persion(),(使用的是默认的无参构造方法);
不可以new Persion(“小明”, 11),没有有参构造方法;
2.写了有参构造方法,默认的无参构造方法不再生效,一般这时也要写上无参构造方法。
/**
* 放开@AllArgsConstructor,有了全参构造方法
*
*/
@Data
@AllArgsConstructor
//@NoArgsConstructor
public class Persion {
private String name;
private Integer eag;
}
/**
* 测试类
*/
public class Test001 {
public static void main(String[] args) {
Persion persion = new Persion("小明", 11);
Persion persion2 = new Persion();//报错
System.out.println(persion);
}
}
通过测试,我们不可以new Persion(),(默认的无参构造方法不再生效)
可以new Persion(“小明”, 11)。
把@AllArgsConstructor和@NoArgsConstructor都放开,我们可以new Persion(),也可以new Persion(“小明”, 11)。