正如标题所指出的,我正在编写一个Java类,该类应该创建狗。
该代码是瑞典语,但并不难理解。
我的问题是在“setSvanslängd”方法中,这基本上意味着“ setTailLength”。
该方法应该查看品种(ras),如果品种是一种税收,则应将尾部长度设置为3.7,但是如果狗是其他品种,则应计算重量(vikt)x年龄(ålder)和然后将值返回到变量“ tailLength”(svanslängd)。
但是,当我尝试创建三只狗时,它的tailLength只返回0.0。
问题出在哪里或什么...?
先感谢您!
到目前为止,这是代码:
public class Hund {
private String namn;
private int ålder;
private int vikt;
private String ras;
private double svanslängd;
public Hund(String namn , int ålder , int vikt, String ras) {
this.namn = namn;
this.ålder = ålder;
this.vikt = vikt;
this.ras = ras;
}
public double setSvanslängd(){
if(ras.equalsIgnoreCase("tax")) {
svanslängd = 3.7;
return svanslängd;
} else {
svanslängd = (ålder * vikt)/10.0;
}
return svanslängd;
}
public String getNamn(){
return namn;
}
public int getÅlder(){
return ålder;
}
public int getVikt(){
return vikt;
}
public String getRas(){
return ras;
}
public double getSvanslängd(){
return svanslängd;
}
public String toString(){
return namn+" "+ras+" "+ålder+" år "+vikt+" kg Svans= "+svanslängd;
}
public static void main (String[] args) {
Hund hund1 = new Hund ("Fido", 2, 3, "tax" );
Hund hund2 = new Hund ("Peter", 4, 6, "varg");
Hund hund3 = new Hund ("Roger", 2, 3, "chiwava");
System.out.println (hund1);
System.out.println (hund2);
System.out.println (hund3);
}
}
最佳答案
这是因为您有一个永远不会调用的方法。
尽管您可以在setSvanslängd
中添加对main
方法的调用来解决此问题,但这不是最好的方法:最好在构造函数中设置尾部的长度,再也不要碰它。这将是一个更加直观的解决方案:
public Hund(String namn , int ålder , int vikt, String ras) {
this.namn = namn;
this.ålder = ålder;
this.vikt = vikt;
this.ras = ras;
// Set the length of the tail
if(ras.equalsIgnoreCase("tax")) {
svanslängd = 3.7;
}else{
svanslängd = (ålder * vikt)/10.0;
}
}