Lecture overview -- Keyboard shortcut: 'u'  Previous page: Eksempel på klasser i pakker -- Keyboard shortcut: 'p'  Next page: Information hiding [Section] -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Play sound for this page -- Keyboard shortcut: 'y'  Page 7 : 33
Forelæsningsnoter i Objekt-orienteret Programmering
Objekt-orienteret programmering i Java, del 2
Hvordan lokaliseres en klasse?

Klasser benytter sig typisk af andre klasser. Problemstillingen, som vi her ser på, er hvordan compileren og fortolkeren lokaliserer de klasser, der er behov for. Vi ser specielt på en angivelse af den såkaldte class path. Vi vil her interessere os for de mere princielle forhold omkring lokalisering af klasser. For detaljer henvises til JDK dokumentationen, hvortil vi refererer nedenfor.

Oversætteren og fortolkeren har behov for at kunne lokalisere Java byte code filer og Java kilde filer

Hvilke steder i filsystemet skal oversætter og fortolker lede efter sådanne filer?

Behovet opstår f.eks. når vi i et program skal type checke et kald af en metode, som befinder sig i en klasse i en anden fil. Java værktøjet vil i dette tilfælde forsøge at finde den oversatte fil eller kilde filen, hvor klassen befinder sig.

Class path definerer steder i filsystemet (pakker) hvor Java værktøjet leder efter klasser, som ikke er systemklasser og udvidelsesklasser

Systemklasserne definerer selve java platformen; disse leveres med JDK omgivelsen. Udvidelsesklasserne (extensions) er pakker af udvidelser til Java platformen, som typisk befinder sig i et bestemt og fast katalog. Hvis alle java filer befinder sig i 'det nuværende katalog' er det ikke nødvendigt at bekymre sig om class path. Hver sti i class path peger på et katalog eller zip/jar fil, som repræsenterer en Java pakke.

Vi ser en skitse af et filsystem hvor classpath udpeger en mængde af 'punkter'. Disse punkter er de ydre pakker, som kan indeholde filer med klasser. Punkterne kan også indeholde andre pakker med filer og eller pakker. De markerede, lysegrønne områder er således de områder, der kan indeholde java class filer.

 

Classpath kan overføres som parameter (option) til oversætter og fortolker

Classpath kan også defineres som en operativsystem 'environment variabel', og evt indføres i en startop fil (såsom .login eller .cshrc)