【发布时间】:2017-03-28 16:14:06
【问题描述】:
我收到错误“错误:递归构造函数调用”,这似乎与没有使用参数初始化的构造函数相关,并且仅使用 this(),我的所有构造函数签名都不同,所以我'不知道是什么问题。我是否以某种方式没有正确使用 this()?
public class passenger{
private int checkedBags;
private int freeBags;
private double bagsFee;
public int getCheckedBags(){
return this.checkedBags;
}
public void setCheckedBags(int checkedBags){
this.checkedBags=checkedBags;
}
public int getFreeBags(){
return this.freeBags;
}
public void setFreeBags(int freeBags){
this.freeBags= freeBags;
}
public double getBagsFee(){
return this.bagsFee;
}
public void setBagsFee(double bagsFee){
this.bagsFee=bagsFee;
}
//all the examples I looked up online seem to correlate with one constructor not being intitialized
passenger(int checkedBags, int freeBags, double bagsFee){//this is
this.checkedBags= checkedBags;
this.freeBags= freeBags;
this.bagsFee= bagsFee;
}
passenger(int freeBags){
this(freeBags);//giving error
}
passenger(double bagsFee){
this(bagsFee);//giving error
}
passenger(){
}
public static void main(String[] args){
passenger john= new passenger();
passenger kate= new passenger(2,1,100d);
System.out.println(john.getCheckedBags());
System.out.println(john.getFreeBags());
System.out.println(john.getBagsFee());
System.out.println(kate.getCheckedBags());
System.out.println(kate.getFreeBags());
System.out.println(kate.getBagsFee());
}
}
【问题讨论】:
-
你觉得
this(freeBags);和this(bagsFee);会怎么做? -
this(freeBags);调用passenger(int freeBags)调用this(freeBags);调用passenger(int freeBags)... -
@Samatha 鉴于您在同一个问题上停留了几个小时,并在 StackOverflow 上提出了多个问题,我认为您应该先阅读一下……这是一个很好的地方开始:docs.oracle.com/javase/tutorial/java/javaOO/index.html
-
类应该命名为
Passenger,而不是passenger。
标签: java constructor this