Kapitel 4. Objekter

Indhold:

Kapitlet forudsættes i resten af bogen.

Forudsætter Kapitel 3, Basal programmering.

4.1. Objekter og klasser

Hidtil har vi kun brugt de simple typer (som int, boolean og double). Et javaprogram vil ofte udføre mere komplekse opgaver og dermed have brug for objekter. Et objekt repræsenterer en eller anden (ofte fysisk) ting og indeholder sammensatte data om denne ting, f.eks. et hus-objekt (med adresse, telefonnummer, antallet af døre og vinduer ...), en bil, en person, en bankkonto, en selvangivelse, en ordre, et dokument ...

Objekter kan klassificeres i forskellige kategorier, kaldet klasser. F.eks. kunne man sige, at alle hus-objekter tilhører Hus-klassen. Hus-klassen er en beskrivelse af alle slags huse.

Næsten alt er repræsenteret som objekter i Java, og der findes tusindvis af foruddefinerede klasser til ting, som man ofte har brug for som programmør såsom: tekststrenge, datoer, lister, filer og kataloger, vinduer, knapper, menuer, netværksforbindelser, hjemmeside-adresser, billeder, lyde ...

Et objekt indeholder data, der beskriver det, som objektet repræsenterer. Et Fil-objekt har oplysninger om den fil, det repræsenterer: Navn, placering, type, dato for oprettelse og indhold. Et Person-objekt har måske variabler for fornavn, efternavn, CPR-nummer.

Et objekt kan også indeholde navngivne programstumper, som kan udføres ved at give objektet besked om det. Disse programstumper kaldes metoder og kan opfattes som spørgsmål eller kommandoer, som man bruger til at undersøge og manipulere indholdet af objektet med.

Et Fil-objekt har måske metoden "omdøb()", der ændrer filens navn, et Person-objekt kan måske give personens alder med metoden "hvadErDinAlder()".

Et objekt kan indeholde metoder og data (variabler)

En metode kan ændre på objektets data, når den udføres

Ligesom med de simple typer afhænger det af objektets type, dets klasse, hvad man kan gøre med det. Ordet "klasse" skal forstås i betydningen "kategori, gruppe". Alle objekter kan klassificeres som værende af en bestemt type (klasse), f.eks. Streng, Dato, Fil, Knap.

Et objekts type kaldes dets klasse

Klassen bestemmer, hvilke metoder og data et objekt indeholder

Objekter af samme klasse forstår de samme beskeder (kommandoer og spørgsmål) og indeholder samme slags data. Objekter af klassen Person indeholder f.eks. begge et navn, men navnene (data) i de to person-objekter kan være forskellige.

Figur 4-1. Java

Vi tegner klasser som vist her:

Figur 4-2. Java

Øverst er klassens navn, dernæst data og nederst metoderne.

Dette er en del af UML-notationen (Unified Modelling Language), en notation, der ofte bliver anvendt i forbindelse med objektorienteret programmering.

I dette kapitel vil vi bruge objekter fra foruddefinerede klasser. Vi har valgt at kigge nærmere på nogle klasser, der er velegnede til at illustrere ideerne, nemlig Point, Rectangle, String, Date, StringBuffer og Vector.

String og Vector er nok de mest brugte klasser overhovedet og er næsten uundværlige i praktisk programmering.