// Utgangspunkt for ? demonstrere invarianter
// Stein Gjessing 19. februar 2023
class BrukKanin {
public static void main ( String []args) {
Kaningard mittKaninbur = new Kaningard( );
Kanin kalle = new Kanin("Kalle");
Kanin petter = new Kanin("Petter");
Kanin sprett = new Kanin("Sprett");
Kanin hopp = new Kanin("Hopp");
Kanin snurr = new Kanin("Snurr");
mittKaninbur.settInn(kalle);
mittKaninbur.settInn(petter);
mittKaninbur.settInn(sprett);
mittKaninbur.settInn(hopp);
mittKaninbur.settInn(snurr);
Kanin ut = mittKaninbur.taUt();
ut = mittKaninbur.taUt();
ut = mittKaninbur.taUt();
ut = mittKaninbur.taUt();
ut = mittKaninbur.taUt();
ut = mittKaninbur.taUt();
System.out.println("FERDIG KANIN-TEST " );
}
}
class Kaningard {
private final int MAXANT = 100;
private Kanin[] denne = new Kanin[MAXANT];
private int antall;
// Invariant hint: Hvilke verdier kan antall ha?
// Invariant: 0 <= antall <= MAXANT
Kaningard () {
// Vet ingen ting
antall = 0;
// 0 <= antall <= MAXANT
}
public void settInn(Kanin k) {
// 0 <= antall <= MAXANT
if ( antall < MAXANT) {
denne[antall] = k;
antall++;
}
// 0 <= antall <= MAXANT
}
public Kanin taUt( ) {
// 0 <= antall <= MAXANT
if(antall > 0) {
antall--;
return denne[antall];
} return null;
// 0 <= antall <= MAXANT
}
}
class Kanin{
public final String navn;
public Kanin(String nv) {
navn = nv;
}
public String hentNavn() {
return navn;
}
}