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 "";
}
}