我在这里找不到任何帮助,所以我只想问问。
public Ride(String n, int tr, double hr , int nr){
String name = n;
int ticketsRequired = tr;
double heightRequirement = hr;
int numberOfRiders = nr;
}
public String toString(){
String info;
info = this.name + " Requiring " + this.ticketsRequired +
" tickets with a height restriction of " + heightRequirement;
return info;
}
那是在一个类中,然后我尝试通过这个在我的包中的另一个程序的主要方法中调用它:
r1 = new Ride("Death run",0, 5.2, 5);
System.out.println( r1.toString());
哪个会返回这个
null Requiring 0 tickets with a height restriction of 0.0
我确信我遗漏了一些简单的东西,但这让我发疯了。
最佳答案
你是 shadowing构造函数中的实例变量:
public Ride(String n, int tr, double hr , int nr){
name = n;
ticketsRequired = tr;
heightRequirement = hr;
numberOfRiders = nr;
}
此处不需要在构造函数中将 this
与字段一起使用,但这是一个很好的做法,因为它们通常被构造函数的参数遮蔽(参见 using the this keyword )。
这是一个使用 this
关键字的版本:
public Ride(String n, int tr, double hr , int nr){
this.name = n;
this.ticketsRequired = tr;
this.heightRequirement = hr;
this.numberOfRiders = nr;
}
关于java - toString 方法打印空变量,无法理解为什么(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21262250/