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

Vi ser her på indre, ikke-statiske klasser. Overfladisk er forskellen blot, at den indre klasse ikke angiver 'static' foran klassedefinitionen. Men som vi vil se er forskellen på semantikken meget stor og væsentlig

En instans af en indre klasse er et delobjekt af en instans af en ydre klasse

Instansen af den indre klasse har fuld adgang til offentlige og private instans egenskaber af det/de omkringliggende objekter

En klasse Outer med en indre klasse Inner. Programmet vises herunder.

/user/normark/courses/prog1/prog1-01/sources/java/noteEksempler/mere-java-oop/inner-classes/var-1/Outer.javaKlassen Outer med den indre klasse Inner.

Klassen Outer med den indre klasse Inner. Når vi laver en instans af Outer vil konstruktoren instantiere Inner. Ligeledes vil 'fabrikations metoden' makeInner lave en instans af Inner, som returneres til en klient af Outer. Dette vil betyde at en klient af Outer har en reference til et Inner objekt, som er en del af det Outerobjekt, hvorfra det blev lavet. Læg mærke til at Inner er en privat indre klasse. Det betyder i et og alt, at ingen klient af Outer selv kan instantiere Inner. Læg også mærke til at Inner refererer til Outer's private a instans variabel.