构造方法

来源:互联网 发布:淘宝客服周总结计划 编辑:程序博客网 时间:2024/06/07 04:11
构造方法

1.构造方法的方法名和类名相同,没有返回值类型,它的作用是在创建对象时执行初始化操作。
2.一个类至少有一个构造方法,如果没有写构造方法,系统会默认给一个无参数的构造方法。
3.如果写了,系统不会在提供。

4.构造方法可以调用构造方法。

5.构造方法在对象一建立就运行,给对象初始化,普通方法是对象调用才执行。

6.一个对象建立构造方法只会运行一次,一般方法可以被该对象调用多次。

语法:
修饰符(public,protected, private) 类名(形式参数列表){

 //构造方法的执行体
}

方法名前面不能加任何void, int等等的东西,切记这一点,否则这个方法就不是构造方法,而是普通的方法。
一个类中,可以有多个构造方法
但是所有的构造方法, 构造方法名必须都是类名

在以下Sample类中,具有int返回类型的Sample(int x)方法只是个普通的实例方法,不能作为构造方法:

public class Sample {
private int x;
public Sample() { // 不带参数的构造方法
this(1);
}

public Sample(int x) { //带参数的构造方法
this.x=x;
}

public int Sample(int x) { //不是构造方法
return x++;
}
}


 this 关键字 

1.每个类的实例方法中,都有一个隐藏的this, 在实例方法中,它就是当前调用这个实例方法的对象
2.在构造方法中, 也有this,这个this 引用正在被初始化的 对象

(1)假如在一个构造方法中使用了this语句,那么它必须作为构造方法的第一条语句。

以下构造方法是非法的:

public Employee(){
String name="张三";
this(name); //编译错误,this语句必须作为第一条语句
}

(2)只能在一个构造方法中用this语句来调用类的其他构造方法,而不能在实例方法中用this语句来调用类的其他构造方法。

(3)只能用this语句来调用其他构造方法,而不能通过方法名来直接调用构造方法。

以下对构造方法的调用方式是非法的:

public Employee() {
String name= "张三";
Employee(name); //编译错误,不能通过方法名来直接调用构造方法

}
0 0