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.

Objekt Orienteret Programmering (OOP):<br />

Struktureret Programmering og Design (SD) opstod omkring 1970. Objekt Orienteret<br />

programmering (OOP) opstod som et paradigme omkring 1990 og findes i sprog som Java,<br />

SmallTalk, C++ og Visual Basic.<br />

Struktureret programmering er en delmængde af OOP paradigmet.<br />

Et meget enkelt eksempel på OOP og erklæring af en klasse er (eksemplet bliver udbygget senere!):<br />

//fil: person.cs<br />

//primitivt eks på OOP<br />

//kompileres som DLL: csc /t:library person.cs<br />

//koden har ikke noget 'entry point' og er IKKE en 'applikation':<br />

using System;<br />

public class Person{<br />

private string fornavn, efternavn, telefon;<br />

}<br />

OOP har en række overordnede typiske træk:<br />

Indkapsling:<br />

En klasse skal fungere som en ‘black box’. Omverdenen skal kunne bruge klassens ’interface’ dvs<br />

dens metoder, men ikke kunne gribe ind i de indre mekanismer i klassen (’data hiding’, objektets<br />

interne tilstand er skjult set udefra).<br />

I eksemplet ovenfor: en persons egenskaber er interne dvs ’private’. Den omgivende verden skal<br />

ikke kunne ændre en persons egenskaber direkte. I det anførte eksempel findes (endnu) ingen<br />

metoder – så foreløbigt kan fornavn, efternavn og telefon slet ikke hentes ud af klassen! Person<br />

klassen er en black box.<br />

Klassen har 3 datamedlemmer. Et datamedlem er noget andet og mere end en variabel: Et<br />

datamedlem rummer information om klassens/objektets ’tilstand’. Et datamedlem er medlem af<br />

klassen og 2 objekter – 2 personer – har antageligt forskellige værdier i deres tilstandsvariable<br />

eller datamedlemmer!<br />

Der kan sammenlignes med at køre bil: det kræves ikke at man har nogen som helst forstand på<br />

bilens mekanik for at kunne køre bilen. Hvordan bilen egentligt fungerer er sikkert helt uvist for de<br />

fleste. Og egentligt også uvæsentligt for billisten (men ikke for automekanikeren!). Formålet med<br />

indkapsling eller ’encapsulation’ er altså også at gøre det nemmere for brugeren! Se fx dette kode<br />

eksempel:<br />

StreamReader r=File.OpenText(”abc.txt”);

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

Saved successfully!

Ooh no, something went wrong!