为什么说构造方法是一种特殊的方法?构造方法什么时候执行?被谁调用?

来源:百度知道 编辑:UC知道 时间:2024/06/18 00:37:01

构造方法在实例化对象时执行。

构造方法在实例化对象时执行

Class1 c = new Class1();
就是在new的时候执行

因为构造方法主要功能是用来初始化类的成员变量的,构造方法的方法名必须和类名相同,它可以是有参数的,也可以是无参数的,在构造方法里面也可以做其他的操作,但是它没有返回类型,所以它是一个特殊的方法.
假如有这样一个类:
class A{

}
当 A a=new A();的时候,就是将类实例化的时候就被JAVA虚拟机调用了该类的无参构造方法-->public A(){},这个方法虽然在类A里面并没有写.这是JAVA虚拟机自动创建的一个无参构造方法.
又如:
class A{
public A(int a){

}
}
再A a=new A();这样就会抱错,因为自己显示的写了一个有参的构造方法,这时JAVA虚拟机不会自动创建一个无参的构造方法.
所以你只能这样创建一个实例A a=new A(3);
或者把类A 改为:
class A{
public A(){
}
public A(int a){
}
}
再A a=new A();

构造函数是函数名字与类名相同并且没有返回值的函数(void也不行),在类一创建实例对象的时候就会自动运行的函数,它可以实现变量的初始化,好比人(实例对象)一样刚出生(创建)该如何处理。可以创建多个构造函数,若没有构造函数,程序会默认创建一个没有参数的空函数作为构造函数,构造函数可以实现程序的多态性,使用不同的参数类型会自动调用不同的构造函数,若没有对应的构造函数类型系统则会返回找不到构造函数的提示。
构造函数被系统调用,参照1987xiaowu朋友的例子看,加深理解