构造方法及其重载(详细)

一、构造方法

对于一个类来说,一般有三种常见的成员:属性field、方法method、构造器constructor。这三种成员都可以定义零个或多个。

构造方法(constructor)也叫构造器,用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。

 

声明格式:

[修饰符] 类名(形参列表){
 //n条语句
}

构造方法4个要点:

  • 构造器的方法名必须和类名一致!
  • 构造器通过new关键字调用!!
  • 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。
  • 如果我们没有定义构造器,则编译器会自动定义一个无参的构造方法。如果已定义则编译器不会自动添加!
  • 构造方法也是方法,只不过有特殊的作用而已。与普通方法一样,构造方法也可以重载

 示例代码:

public class student {
    public student(){//无参构造方法
        System.out.println("我是海贼王,构造方法在创建的时候就会被执行!!!");
    }
    private int age;
    private String name;
    public student(String name,int age){//有参构造方法--方法的重载
        this.name=name;
        this.age=age;
    }
    public void show(){
        System.out.println("海贼王..."+name+"..."+age);
    }
}
public class studenttest {
    public static void main(String[] args) {
        student st=new student();
        student st1=new student();
        student st2=new student();//无参构造方法,构造自动执行

        student st3=new student("路飞",18);
        st.show();
        st3.show();

    }
}
我是海贼王,构造方法在创建的时候就会被执行!!!
我是海贼王,构造方法在创建的时候就会被执行!!!
我是海贼王,构造方法在创建的时候就会被执行!!!
海贼王...null...0
海贼王...路飞...18

需要注意的地方:

1)对象的创建完全是由构造方法实现的吗?

不完全是。构造方法是创建Java对象重要途径,通过new关键字调用构造器时,构造器也确实返回了该类对象,但这个对象并不是完全由构造器负责创建的。创建一个对象分为如下四步:

1. 分配对象空间,并将对象成员变量初始化为0或空

2. 执行属性值的显示初始化

3. 执行构造方法

4. 返回对象的地址给相关的变量


2)如果方法构造中形参名与属性名相同时,需要使用this关键字区分属性与形参。

this.id 表示属性 id; id 表示形参 id

你可能感兴趣的:(学习笔记,java,开发语言,后端)