2014-03-28 5 views
0

동물을 만들기위한 프로그램을 작성 중이며 건강, 에너지 또는 굶주림이 20 레벨 아래로 떨어지면 프로그램에서 해당 동물의 소음을 인쇄하는 방법을 만드는 데 도움이 필요합니다. 동물의 최고 종류가 있고 나는 지금 개에 종사하고있다. 여기 수퍼 클래스의 방법

동물 클래스의 코드의 예입니다 : 즉 굶주림이 20 떨어지면 있도록하는 방법을 쓰기

public void setHungry(int Hungry) { 
    this.Hungry = Hungry; 

방법에 대한 프로그램 것입니다 :

if (Hungry <= 20) 
System.out.println ("Grunt"); 

I 돈 코딩 경험이 많지 않습니다.

사전에 덕분에 나는이 그룹 작업을 언급하는 것을 잊었다 그리고 난 동물 클래스

+1

굶주림이 '20'미만으로 떨어지는 지 확인하려면 '배고파 <= 0'을 (를) 비교하는 이유는 무엇입니까? 또한 Java 명명 규칙을 따르십시오. 변수/메소드에는'someVar'와 같은 이름을 사용하고 클래스에는'SomeClass'와 같은 이름을 사용하십시오. – Christian

+0

코드 검사가 0 대 20이지 않은 점 외에는 문제가 표시되지 않습니다. 정확히 무엇이 부족한거야? – Mureinik

+0

이 배고픈 가치는 어디에서 변경합니까? 해당 값을 편집하여 그 값이 20보다 작 았는지 확인하기 위해 컨트롤을 작성하는 것이 좋습니다. – Karura91

답변

1

에게 Animal.java

public abstract class Animal { 

    private int hungry; 

    public void setHungry(int hungry) { 
     this.hungry = hungry; 
     if(this.hungry <= 20) { 
      this.shout(); 
     } 
    } 

    public abstract void shout(); 

} 

Lion.java을 변경할 수 없습니다

public class Lion extends Animal { 

    @Override 
    public abstract void shout() { 
     System.out.println("GRRRRR"); 
    } 

} 

편집 : 동물이 만질 수 없다는 것을 고려하면 하위 클래스에서 setHungry의 정의를 변경해야합니다. 그 값에 대한 게터가 있다고 가정합니까? 또는 값이 보호되어 있습니까?

public class Lion extends Animal { 

    @Override 
    public void setHungry(int hungry) { 
     super.setHungry(hungry); 
     if(this.getHungry() <= 20) { 
      System.out.println("GRRRRR"); 
     } 
    } 

} 
+0

이 작업은 그룹 작업이며 동물 클래스를 변경할 수 없음을 잊어 버렸습니다. – user3472848

+0

OK! 그래서 코드 또는 적어도 Animal의 동작을 제공 할 수 있습니까? – Thomas

+0

동물 클래스의 굶주림에 대한 코드는 다음과 같습니다. public void setHungry (int Hungry) { \t \t this.Hungry = Hungry; \t} 건강과 에너지를위한 방법은 동일한 레이아웃을 가지고 있습니다 – user3472848

0

토마스의 접근 방식은 유효하지만이 해결책이 필요하면 다른 해결책을 제안 해주세요.

public abstract class Animal { 

    int hunger; 
    int energy; 
    int health; 

    public void makeNoise() { 
     if (hunger < 20 || energy < 20 || health < 20) { 
      System.out.println(getVoice()); 
     } 
    } 

    abstract protected String getVoice(); 
} 


public class Lion extends Animal { 
    String voice = "Grr"; 

    @Override 
    protected String getVoice() { 
     return voice; 
    } 
}