什么是构造器
1. 什么是初始化

对象在刚创建时进行的工作就称为初始化, 初始化的主要工作是针对对象的属性的.
2.构造器概念
当对象创建时, 希望对象的属性值被正确赋值, 此时就需要用到了构造器, 构造器也称为构造方法, 本质上构造器就是一个方法, 是一个特殊的方法.
3. 如何定义构造器
构造器(构造方法)的定义
修饰符 类名(参数类型1 形参1, 参数类型2 形参2….) {
代码块;
}
public class Teacher {
private String name;
private int age = 30;
private String gender = "女";
public Teacher() { // 无参构造器
name = "张三";
age = 35;
gender = "男";
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getGender() {
return gender;
}
public String say() {
return "姓名:" + this.name + ",年龄:" + this.age + ",性别:" + this.gender;
}
}
注意 : 类中如果没有提供任何的构造器, 编译器也会自动添加一个缺省的构造器
缺省的构造器就是 修饰符和类一致, 无参, 并且方法体中没有代码.
构造器的特点
特点1:
构造器没有返回值, 也不可以声明void
特点2:
构造器名称必须和类名一致
特点3:
构造器不可以被final, static, abstract等修饰
特点4:
构造器不像普通方法可以随意调用, 只能在创建对象时调用一次
构造器调用
1.如何调用构造器
使用new关键字在创建对象时就会自动调用了构造器
public class TeacherTest {
public static void main(String[] args) {
Teacher t = new Teacher(); // 调用无参构造方法
System.out.println(t.say()); // 输出”姓名:张三,年龄:35,性别:男”
}
}
构造器重载
1.什么是构造器重载
当一个类中有多个构造器, 并且参数不同就形成构造器重载
构造器重载的目的是可以使用多种方式创建不同的对象
public class Teacher {
private String name;
private int age = 30;
private String gender = "女";
public Teacher() { // 无参构造器
name = "佟刚";
age = 35;
gender = "女";
}
// 有参构造器
public Teacher(String n, int a) {
name = n;
age = a;
gender = "女";
}
// 有参构造器
public Teacher(String n, int a, String g) {
name = n;
age = a;
gender = g;
}
public String say() {
return "姓名:" + name + ",年龄:" + age + ",性别:" + gender;
}
}
public class TeacherTest {
public static void main(String[] args) {
Teacher t1 = new Teacher(); // 调用无参构造方法
System.out.println(t1.say());
Teacher t2 = new Teacher(“李四”, 40); // 调用有参构造方法
System.out.println(t2.say());
Teacher t3 = new Teacher(“王五”, 50, “男”); // 调用有参构造方法
System.out.println(t3.say());
}
}
2. this()调用
在无参构造器中, 给对象的3个属性分别完成赋值, 而这个操作可以通过调用另外一个构造器来完成,调用的语法this(实参列表);
注意 :
this(…) 调用必须放在构造器的第一行!
this(…) 调用时,必须保证有一个构造器是没有this(…)的, 否则会形成构造器递归调用.

想要了解跟多关于java培训课程内容欢迎关注达内java培训,达内除了这些技术文章外还有免费的高质量大