class Bok{
public Bok(){
System.out.println("一个新的Bok类对象");
}
public Bok(String title){
this();
}
public Bok(String title,double price){
this(title);
}
}
public class TestDemo {
public static void main(String[] args) {
Bok bok = new Bok("Java开发",79.8);
}
}
输出为:
一个新的Bok类对象
使用this调用其他构造有如下要求:
1.构造的调用必须放在构造方法的首行
class Bok{
public Bok(){
System.out.println("一个新的Bok类对象");
}
public Bok(String title){
System.out.println();
this();
}
public Bok(String title,double price){
this(title);
}
}
public class TestDemo {
public static void main(String[] args) {
Bok bok = new Bok("Java开发",79.8);
}
}
程序报错:
java: 对this的调用必须是构造器中的第一个语句
2.this不能在普通方法中进行调用
public void fun(){
this();
}
程序报错:
java: 对this的调用必须是构造器中的第一个语句
3.在this互相调用构造方法的时候,请保留有一个出口
class Bok{
public Bok(){
this("JAS",12);
}
public Bok(String title){
this();
}
public Bok(String title,double price){
this(title);
}
}
public class TestDemo {
public static void main(String[] args) {
Bok bok = new Bok("Java开发",79.8);
}
}
程序报错:
java: 递归构造器调用



