26.07.2013 Views

Operativsystem: .............................................................

Operativsystem: .............................................................

Operativsystem: .............................................................

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Et praktisk eksempel på OOP: Person og Adresse klassen:<br />

Person klassen har en indre egenskab – personens adresse. Vi starter derfor med at oprette en ny<br />

klasse som skal bruges til at holde styr på adresser eller ’adresse objekter’:<br />

//fil:adresse.cs<br />

//kompileres: csc /target:library adresse.cs (giver adresse.dll):<br />

//klassen i sin egen fil af hensyn til genbrug:<br />

using System;<br />

public class Adresse{<br />

}<br />

//contructor:<br />

public Adresse(string g, string n, string p, string b){<br />

gade=g;nr=n;postnr=p;by=b;<br />

}<br />

//metode, medl funktion, interface:<br />

public string vis_adresse(){<br />

return "\n"+gade+" "+nr+"\n"+postnr+" "+by;<br />

}<br />

//felt, datamedlem, instans var: NB private pga OOP indkapsling hiding:<br />

private string gade, nr, postnr, by;<br />

Kommentar til Adresse klassen:<br />

Adresse klassen gemmes i sin egen fil adresse.cs – for at den kan genbruges af andre klasse filer<br />

eller applikationer.<br />

Den er IKKE nogen ’applikation’ – den har ikke nogen Main() metode og kan altså ikke køres som<br />

et program.<br />

Den skal kompileres således:<br />

csc /target:library adresse.cs<br />

eller:<br />

csc /t:library adresse.cs<br />

Resultatet bliver adresse.dll som er en DLL fil akkurat som den tidligere nævnte<br />

System.Windows.Forms.dll der indeholder definitioner på Windows komponenter.<br />

Klassen Adresse indeholder private variable (gade, gadenr osv) – et eksempel på ’data hiding’ eller<br />

indkapsling. Adresse er en black box som man kun har adgang til via de public metoder som<br />

klassen tilbyder (dens interface).<br />

Der er en vis svag tradition for at benævne klasser i C# med stort begyndelsesbogstav (som fx<br />

Adresse) – men et klassenavn med kun små bogstaver er helt OK (modsat Java). Klassen Adresse<br />

behøver heller ikke at blive gemt i en fil der hedder Adresse.cs (igen modsat Java!) – CS filen kan<br />

hedde hvad som helst og indeholde mange klasse erklæringer.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!