제목에서 이미 언급했듯이 저는 개를 만드는 Java 클래스를 작성하고 있습니다.
코드는 스웨덴어로되어 있지만 이해하기 너무 어렵지는 않습니다.
내 문제는 기본적으로 "setTailLength"를 의미하는 "setSvanslängd"메소드에 있습니다.
이 방법은 품종 (ras)을보고 품종이 세금 인 경우 꼬리 길이를 3.7로 설정해야하지만, 개가 다른 품종이면 체중 (vikt) x 나이 (ålder)를 계산해야합니다. 그런 다음 변수 "tailLength"(svanslängd)에 값을 반환합니다.
하지만 3 마리의 개를 만들려고하면 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;
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다