// Utgangspunkt for ? demonstrere invarianter // Stein Gjessing 15. februar 2022 class BrukKaninEtterForelesning { 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; } }