// Vi definerer klassen 'Katt'. Denne klassen er 'public' som standard, selv om det ikke er // skrevet. class Katt { // Dette er instansvariablene til klassen. // Disse er definert som 'private', noe som vil si at de ikke kan aksesseres av entiteter utenfor // klassen. Hvis vi ikke hadde definert 'private' eller 'public', ville variablene blitt behandlet // som 'public'. private String farge; private String navn; private int alder; private boolean levende = true; // Dette er konsruktøren til klassen public Katt(String f, String n, int alder){ farge = f; navn = n; // Siden variabelnavnet i parameteret og instansvariabelen heter det samme, må vi // presisere hva som er instansvariabelen med 'this'. this.alder = alder; } // Vi definerer metoden 'mjau'. Vi sier at den ikke skal returnere noe med 'void'. public void mjau(){ System.out.println(navn + ": Mjau!"); } public void bliSpist(){ System.out.println(navn + ": Mja...!"); levende = false; } } class Hund { private String navn; private int vekt; public Hund(String navn, int vekt){ this.navn = navn; this.vekt = vekt; } // Denne metoden tar inn et objekt av en annen klasse som argument. Når vi definerer // parameteret må vi også erklære verditypen til parameteret. public void spisKatt(Katt k){ System.out.println(); System.out.println(navn + ": Voff!"); k.mjau(); k.bliSpist(); vekt++; if (vekt >= 10){ navn = "Feite " + navn; } System.out.println(navn + ": Omnom!"); } } // Dette er hovedprogrammet, og er koden som blir kjørt. Det er viktig at denne har // samme navn som filen. class Dyrehage { public static void main(String[] args){ Katt nussi = new Katt("Beige", "Nussi", 3); Katt pusen = new Katt("Hvit", "Pusen", 2); Hund ask = new Hund("Ask", 8); ask.spisKatt(nussi); ask.spisKatt(pusen); } }