黑马程序员技术交流社区

标题: 默认构造方法 [打印本页]

作者: 马云    时间: 2012-3-19 14:42
标题: 默认构造方法
默认构造方法

默认构造方法是没有参数的构造方法,可分为两种:(1)隐含的默认构造方法;(2)程序显式定义的默认构造方法。

在Java语言中,每个类至少有一个构造方法。为了保证这一点,如果用户定义的类中没有提供任何构造方法,那么Java语言将自动提供一个隐含的默认构造方法。该构造方法没有参数,用public 修饰,而且方法体为空,格式如下:

public ClassName(){} //隐含的默认构造方法

在程序中也可以显式地定义默认构造方法,它可以是任意的访问级别。例如:

protected Employee() { //程序显式定义的默认构造方法

this("无名氏");

}

如果类中显式定义了一个或多个构造方法,并且所有的构造方法都带参数,那么这个类就失去了默认构造方法。在以下程序中,Sample1类有一个隐含的默认构造方法,Sample2类没有默认构造方法,Sample3类有一个显式定义的默认构造方法。

public class Sample1{}

public class Sample2{

public Sample2(int a){System.out.println("My Constructor");}

}

public class Sample3{

public Sample3(){System.out.println("My Default Constructor");}

}

可以调用Sample1类的默认构造方法来创建Sample1对象。

Sample1 s=new Sample1(); //合法

Sample2类没有默认构造方法,因此以下语句会导致编译错误。

Sample2 s=new Sample2(); //编译出错

Sample3类显式定义了默认构造方法,因此以下语句是合法的。

Sample3 s=new Sample3();





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2