构造方法
chapter 8:构造方法(constructor)
构造方法(constructor)是一种特殊的方法。
通过构造方法可以完成实例变量的初始化。
构造方法的声明格式:
[修饰符] 类名([参数列表])[throws 异常列表]{
//方法体
}
注意:被 [ ] 包围的内容不是必须存在的,后面在声明格式里出现的[ ]都是这个意思。
构造方法与类名同名、不能显式书写返回类型。比如:
public class Dog{
public Dog(){
//注意方法名是与类名同名
}
}
如果一个类中没有书写构造方法,那么编译器将提供一个默认构造方法。
所谓默认构造方法是 public修饰的、没有参数的构造方法。比如在 Dog 类中:
public class Dog {
}
并没有显式提供任何构造方法,但实际上,在编译阶段,编译器提供了一个默认构造方法。
由编译器提供的构造方法类似以下定义:
//在类中没有显示书写,但实际上编译器提供了
public Dog(){
//编译器提供的默认的无参构造方法
}
如果显示书写了构造方法,则编译器不再提供默认构造方法。比如:
public class Dog{
//字段
public String name="哮天犬";
public Dog( String name ){
this.name=name;
}
}
构造方法是可以带有参数的、通常这些参数用来初始化实例变量。
构造方法也是可以重载的。比如:
public class Dog{
private String name;
public Dog(){
//当显示书写了带参数的构造方法,如果还需要使用无参构造,则需要显式书写。
}
public Dog( String name ){
this.name=name;
}
public static void main(String[] args) {
Dog da = new Dog(); //调用无参构造
String na = "哮天犬";
Dog db = new Dog(na); //调用有参构造
}
}
这时,上面这两个构造方法就构成了重载。
当构造方法出现异常时,不会直接显式构造方法名,而是通过
public class Dog {
public Dog() {
System.out.println(10/0); //这里我们是为了让构造方法出现异常、特意在这块造了一个异常。
}
public static void main(String[] args) {
Dog da = new Dog();
}
}
明显这时我们这个构造方法会有异常,下面是报的异常。
我们不看报的异常是什么(因为这个异常是我们故意制造的),在这里我们要关注的是异常所在的位置,显式的
近期评论