Opgave 4 (ca. 15%)

Spørgsmål 4.1 (ca. 15%)

public class Planet {
   public static final int MAXANTAL_MAANER = 18;
   private String navn;
   private int radius;
   private int aphelium; // Max-afstand til solen
   private int perihelium; // Min-afstand til solen
   private Maane[] maaner;
   private int antalMaaner;

   public Planet(String navn, int radius, int aphelium, int perihelium) {
      this.navn = navn;
      this.radius = radius;
      this.aphelium = aphelium;
      this.perihelium = perihelium;
      maaner = new Maane[MAXANTAL_MAANER];
      antalMaaner = 0;
   }

   // PRE: true
   // POST: returnerer planetens navn
   public String getNavn() {
      return navn;
   }

   // PRE: true
   // POST: returnerer planetens radius
   public int getRadius() {
      return radius;
   }

   // PRE: true
   // POST: returnerer max-afstanden til solen
   public int getAphelium() {
      return aphelium;
   }

   // PRE: true
   // POST: returnerer min-afstanden til solen
   public int getPerihelium() {
      return perihelium;
   }


   // PRE: true
   // POST: returner true, hvis det lykkes at tilføje en måne, ellers false
   public boolean addMaane(Maane maane) {
      boolean done = false;
      if (antalMaaner < MAXANTAL_MAANER) {
         maaner[antalMaaner++] = maane;
         done = true;
      }
      return done;
   }

   // PRE: true
   // POST: returnerer antallet af måner tilknyttet planeten
   public int getAntalMaaner() {
      return antalMaaner; 
   }

   // PRE: true
   // POST: Returnerer navnet på den største måne,
            eller den tomme string, hvis ingen måner er tilknyttet
   public String getStoersteMaane() {
      Maane tmp = maaner[0];
      for (int i=1; i<antalMaaner; i++) {
         if (maaner[i].getRadius() > tmp.getRadius())
         tmp = maaner[i];
      }
      if (tmp != null)
         return tmp.getNavn();
      else 
         return "";
   }
}