-
方法名与类名相同 方法体没有返回值但是在方法声明的时候却不需要使用void修饰的方法我们称之为构造方法
-
构造方法的作用 用于初始化对象 对象的属性赋值
-
没有参数的构造方法我们称之为无参构造方法
-
代码中没有编写过构造方法 jvm在执行对象初始化的时候帮助程序追加无参构造方法
-
注意当一个类中 既没有无参构造方法也没有有参构造方法的时候jvm会追加一个无参构造方法
-
但是当一个类中 存在有参构造方法没有编写无参构造方法的时候jvm不会追加无参构造方法
-
所以不论在任何情况下一定要自己手写有一个无参构造方法
//以下是无参构造
@Setter
@Getter
public class Person01 {
/**
* 昵称
*/
private String nickname;
/**
* 性别 1代表男性 0代表女性
*/
private int gender;
/**
* 年龄
*/
private int age;
public Person01(){
System.out.println("我是Person01的无参构造方法");
}
}
public class Person01Test {
@Test
public void test01(){
//直接实例化,然后运行,就会得到结果
Person07 person01 = new Person01();
}
}
//全参构造法
@Setter
@Getter
public class Person02 {
/**
* 昵称
*/
private String nickname;
/**
* 性别 1代表男性 0代表女性
*/
private int gender;
/**
* 年龄
*/
private int age;
public Person02(){
System.out.println("我是Person02的无参构造方法");
}
public Person02(String nickname, int gender, int age) {
System.out.println("我是Person02的全参构造方法");
this.nickname = nickname;
this.gender = gender;
this.age = age;
}
}
public class Person02Test {
//test01和test02两种赋值写法
@Test
public void test01() {
Person02 person02 = new Person02();
person02.setNickname("海王");
person02.setGender(1);
person02.setAge(40);
System.out.println("姓名 >>> " + person02.getNickname());
System.out.println("性别 >>> " + (person02.getGender() == 1 ? "童锦程" : "刘秘书"));
System.out.println("年龄 >>> " + person02.getAge());
}
@Test
public void test02() {
Person02 person02 = new Person02("海王",1,40);
System.out.println("姓名 >>> " + person02.getNickname());
System.out.println("性别 >>> " + (person02.getGender() == 1 ? "童锦程" : "刘秘书"));
System.out.println("年龄 >>> " + person02.getAge());
}
}