一、构造器
构造器又称构造方法,是为了创建对象和初始化对象所产生的。
二、构造器的特征
1、它具有与类相同的名称。
2、它不声明返回值类型。(与声明为 void 不同)
3、不能与 static、final、synchronized、abstract、native 修饰,不能有 return 返回值;
三、构造器的作用
作用:
(1)构造对象,创建对象,和 new 一起使用,每次调用它就是在创建新的对象
(2)当一个对象被创建时,构造方法用来初始化对象,给对象的成员变量赋初始值
注意:当自己没有定义构造方法时,Java 自动提供了一个无参数的构造方法,所有的类都有构造方法。一旦自己定义了构造方法,Java将不再提供构造方法。
四、构造器的语法
语法格式:
修饰符 构造方法名/类名(【参数列表】){
初始化语句;
}
举例:
1 public class Animal {
2 private int legs;
3
4 //构造器
5 public Animal() {
6 legs = 4;
7 }
8 public void setLegs(int i) {
9 legs = i;
10 }
11 public int getLegs() {
12 return legs;
13 }
14 }
创建 Animal 类的实例:Animal a = new Animal();
调用构造器,将 legs初始化为4。
五、构造器的细节
根据参数不同,构造器可以分为如下两类:
-
- 隐式无参构造器(系统默认提供)
- 显示定义一个或多个构造器(无参、有参)
1、如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器。
2、一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器。
3、一个类中定义的多个构造器,彼此构成重载。
4、一个类中,至少会有一个构造器。
5、默认构造器的修饰符与所属类的修饰符一致。
6、父类的构造器不可被子类继承。
7、构造方法的名称必须与类名相同,且构造方法没有返回值类型,也不写 void。
8、构造方法不能return一个具体的返回值。
六、构造器的重载
1、构造器一般用来创建对象的同时初始化对象。
1 class Person{
2 String name;
3 int age;
4 public Person(String n, int a) {
5 name = n;
6 age = a;
7 }
8 }
2、构造器重载使得对象的创建更加灵活,方便创建各种不同的对象。
构造器重载举例:
1 public class Person{
2 public Person(String name, int age, Date d) {this(name,age);…}
3 public Person(String name, int age) {…}
4 public Person(String name, Date d) {…}
5 public Person(){…}
6 }
3、构造器重载,参数列表必须不同。
Demo:
七、属性赋值过程
在创建对象的时候,在很多位置都可以对类的属性赋值。现总结这几个位置,并指明赋值的先后顺序。
赋值的位置:
① 默认初始化
② 显式初始化
③构造器中初始化
④ 通过“对象.属性” 或 “对象.方法” 的方式赋值
赋值的先后顺序:① -> ② -> ③ -> ④