Lecture overview -- Keyboard shortcut: 'u'  Previous page: Variationer over eksemplet -- Keyboard shortcut: 'p'    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 33 : 33
Forelæsningsnoter i Objekt-orienteret Programmering
Objekt-orienteret programmering i Java, del 2
Lokale og anonyme klasser

Vi slutter af med at give et eksempel på en klasse som er lokal i en metode.

Det er muligt at definere en lokal klasse på ethvert sted i en blok, herunder i metoder og konstruktorer

En lokal klasse er som en indre klasse, der er placeret endnu mere specifikt

En anonym klasse er en klasse uden navn, som instantieres umiddelbart

/user/normark/courses/prog1/prog1-01/sources/java/noteEksempler/mere-java-oop/local-classes/var-1/Outer.javaKlassen Outer med en lokal klasse Local i metoden method.

Klassen Outer med en lokal klasse Local i metoden method. Eksemplet er helt igennem kunstigt. Det er svært at forestille en situation, hvor noget lignende vil være nyttigt i praksis. Når vi senere får introduceret interfaces vil det dog undertiden være nyttigt at lave lokale klasser som instantieres og returneres til omverdenen. En sådan instans kan manipuleres via et interface. Dette program udskriver tallet 45. Lad os forklare hvad der sker i programmet. Hovedprogrammet main kalder den statiske metode method med 5 som parameter. method laver en instans af den lokale klasse. Konstruktoren Local initialiserer instVar til par + loc = 5 + 10 = 15. Bemærk at Local har tilgang til omkringliggende lokale variable og parametre i method. (Disse skal dog af implementationstekniske årsager være erklæret final - altså uforanderlige når først assignet). Metoden methodLocal anvendt på instansen af Local returnerer nu 3*InstVar = 3*15 = 45. method returnerer og instansen af Local forsvinder.