Java 面向对象(六)类的成员 之 构造器(构造方法)

一、构造器

  构造器又称构造方法,是为了创建对象和初始化对象所产生的。

二、构造器的特征

  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:

    

七、属性赋值过程

  在创建对象的时候,在很多位置都可以对类的属性赋值。现总结这几个位置,并指明赋值的先后顺序。

  赋值的位置: 

① 默认初始化

② 显式初始化

③构造器中初始化

④ 通过“对象.属性” 或 “对象.方法” 的方式赋值

  赋值的先后顺序:① -> ② -> ③ -> ④

原文地址:https://www.cnblogs.com/niujifei/p/13771306.html