Du er ikke logget inn. Så lenge du ikke er logget inn går du glipp av muligheten for å holde styr på din egen progresjon.

Logg inn

Valgte tags:

Filtrering:

Skriv ut:

01.09: Båthus

I denne oppgaven skal du lage en klasse som skal kunne inneholde båter. Båter er definert ved hjelp av klassen Baat:

class Baat {

    private static int antProd = 0;
    private int prodnr;
    private String merke;

    public Baat(String mrk) {
        prodnr = antProd;
        antProd++;
        merke = mrk;
    }

    public String hentInfo() {
        return "Produksjonsnummer: " + prodnr + ", merke: " + merke;
    }
}

a) Skriv klassen Baathus. Et båthus skal inneholde en liste (array) av Baat-objekter. Konstruktøren skal ta imot et heltall antallPlasser som brukes for å bestemme størrelsen på båtlisten.

Du trenger også en metode settInn som tar imot et Baat-objekt og forsøker å legge det til i lista (her vil du trenge en løkke!). Hvis det ikke er plass til flere båter skal metoden skrive ut en feilmelding.

I tillegg skal Baathus ha en metode skrivBaater som skriver ut informasjon om alle båtene ved hjelp av en for-løkke.

b) Skriv en klasse TestBaathus med en main-metode der du oppretter et båthus med 3 plasser samt noen båter. Forsøk å sette inn en båtene i båthuset, og sjekk at programmet sier fra dersom du forsøker å sette inn for mange i båthuset.

Vis løsningsforslag

a)

class Baathus {
    private Baat[] baathus;

    public Baathus(int antallPlasser) {
        baathus = new Baat[antallPlasser];
    }

    public void settInn(Baat enBaat) {

        boolean sattInn = false;
        int teller = 0;

        while (teller < baathus.length && sattInn == false) {
            if (baathus[teller] == null) {
                baathus[teller] = enBaat;
                sattInn = true;
            }

            teller++;
        }

        if (sattInn != true) {
            System.out.println("Det er ikke plass til flere baater!");
        }

    }

    public void skrivBaater() {
        for (int i = 0; i < baathus.length; i++) {
            if (baathus[i] != null){
                System.out.println(baathus[i].hentInfo());
            }
        }
    }
}

b)

class TestBaathus {
    public static void main(String[] args) {
        Baathus baathus = new Baathus(3);

        Baat b1 = new Baat("Triton");
        Baat b2 = new Baat("Chaparral");
        Baat b3 = new Baat("Mercury");
        Baat b4 = new Baat("Mercury");

        baathus.settInn(b1);
        baathus.settInn(b2);
        baathus.settInn(b3);
        baathus.settInn(b4);

        baathus.skrivBaater();
    }
}