Gå til innhold

[løst] Boolan retunerer false, hvorfor?


Anbefalte innlegg

Jeg har en klasse hvor jeg skal skrive inn foringstider. Når jeg prøver å skrive inn f. eks 7 i det ene feltet og 13 i det andre feltet så retunerer den false. Uansett hva jeg prøver så får jeg false. Det går ikke å legge til foringstider. Hva er galt? :blush:

 

import java.util.HashSet;
/**
* Klassen Enclosure  er en innhegning som samler dyr av en type.
* 
*/
public class Enclosure
{
   private String name; 
   private String species; // dyreart
   // konstanter som brukes til å aksessere foringstidspunktene. 
   public final static int MORNING = 0;
   public final static int AFTERNOON = 1;
   // Use of a HashSet makes it impossible to add an animal more than once to a collection.
   private HashSet<ZooAnimal> animals;
   private int[] feedingPlan;
   public static String notDefined = " ";
   private int maxNumberofAnimals;

   /**
    * Konstruktør som angir navn på innhegningen og type dyr
    * @param name  navn på innhegningen
    * @param animalTYpe navn på den type dyr det finnes i denne innhegningen.
    *                   Dette må være navnet på klassen med dyr som innhegningen kan inneholde.
    */
   public Enclosure(String name, String animalType, int maxNumberofAnimals) {
       this.name = name.trim();
       species = animalType.trim();
       // Create the containers for animals
       animals = new HashSet<ZooAnimal>();        
       // we only need to store two items in this list
       feedingPlan = new int[2];
       this.maxNumberofAnimals = maxNumberofAnimals;
   }
   /**
    * Metode som henter navnet på innhegningen
    * @return Navnet på innhegningen
    */
   public String getName() {
       return name;
   }
   /**
    * Metode som henter beskrivelse av art som befinner seg i innhegningen.
    * @return Arten som finnes i innhegningen
    */
   public String getSpecies() {
       return species;
   }
   /**
    * Add a animal to the enclosure. If the animal is not the same species that 
    * the enclosure is defined for, the animal will not be inserted, and the method return false.
    * @param The animal to be added
    * @return true if the animal is of the right species, false otherwise.
    */
   public boolean addAnimal(ZooAnimal animal) {       
       
       String classType = animal.getClass().getName();
       if ((classType == species) && (getNumberOfAnimals() < maxNumberofAnimals)) {
           animals.add(animal);
           return true;
       }
       else
           return false;
   }
   /**
    * Remove an animal from the zoo. This happens if we sell an animal to 
    * another zoo or when it dies.
    * @param animal  The animal that is to be removed from the zoo.
    */
   public void removeAnimal(ZooAnimal animal) {
       // deleger oppgaven til samlingen
       animals.remove(animal);  // remove it from the collection
   }
   /**
    * Get the number of animals in the enclosure
    * @return The number of animals in this enclosure
    */
   public int getNumberOfAnimals() {
       return animals.size();
   }
   /**
    * Sett sammen en utskrift som inneholder navn på innhegning, art og antall dyr.
    * @return  Formatert oversikt over navn på innhegning, type dyr og antall dyr.
    */
   public String listNumberOfAnimals() {
       return "Innhegning: " + getName() + "\n\t Dyr: " + getSpecies() 
           + "\n\tAntall dyr:" + getNumberOfAnimals() +"\n";
   }
       /**
    * Sett matingstidspunktet for dyrene - hele timer. Bruk av Time med fastsatte verdier forhindrer  
    * klienter fra å legge til annet enn ett foringstidspunkt om morgenen og ettermiddagen. 
    * Hvis foringstidspunkt er utenfor gyldige tider: morgen (7-13) og ettermiddag (15-18), gjøres ingenting.
    * @param feedingTime   En tid på dagen når dyrene blir matet.
    * @param time      Spesifiserer hvorvidt foringstiden gjelder for morgen eller ettermiddag.
    * @return   true hvis foringstidspunktet var godkjent, false ellers.
    */
   public boolean setFeedingTime(int feedingTime, int time) {
       int t = -1;
       boolean validFeedingtime = false;
       // Vi ønkser å være sikker på at matingstidspunktene for morgen og ettermiddags er sortert korrekt.
       switch (time) {
           case MORNING:
               if (checkFeedingTime(feedingTime, 7, 13))
                   validFeedingtime = true;
               t = 0;
               break;
           case AFTERNOON:
               if (checkFeedingTime(feedingTime, 15, 18))
                   validFeedingtime = true;
               t = 1;
               break;
           default:  // for all other situations, do nothing.
               break;
       }
       if (validFeedingtime) 
           feedingPlan[t] = feedingTime;
       return validFeedingtime;
   }
   /**
    * Hjelpemetode for å teste om verdien for matingstidspunkt er mellom gyldige grenseverdier.
    * @param value   Spesifisert foringstidspunkt
    * @param low     Den laveste verdi som aksepteres for denne situasjonen.
    * @param high    Den høyeste verdi som aksepteres for denne situasjonen.
    */
   private boolean checkFeedingTime(int value, int low, int high) {
       // returnerer sant (true) hvis verdien ligger mellom low og high
       return ( value >= low && value <= high);
   }
   /**
    * Slår sammen kl.slett og dyretype og legger disse samlet i en array. 
    * Det gjør at det blir mindre arbeid for klienten.
    * @return En array av tekstrenger med elem av typen "Kl. 8 Dyreart"
    */
   public String[] getFeedingPlan() {
       String[] feeding = new String[2];
       for (int i = 0; i < feedingPlan.length; i++ ) {
           if (feedingPlan[i] == 0) {
               feeding[i] = notDefined + species;
           }
           else {
               feeding[i] = "Kl. ";
               if (feedingPlan[i] < 10)
                   feeding[i] += 0; // Legg til en 0 for tall under 10 slik at vi får 08
               feeding[i] += feedingPlan[i] + " " + species;
           }
       }
       return feeding;
   }
   /**
    * toString returnerer en representasjon av objektet.
    */
   public String toString() {
       String tmp = "Innhegningen " + getName() + " inneholder " + getNumberOfAnimals() + " dyr.\n";
       tmp += "Dette er: \n";
       for (ZooAnimal animal : animals)
           tmp += animal;
       return tmp+ "\n";
   }
}

Endret av NestenUtenkunnskap
Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...