一、构造方法
对于一个类来说,一般有三种常见的成员:属性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