Linux - Friheden til at programmere i Java: Version 0.7.20040516 - 2020-12-31 | ||
---|---|---|
forrige | Kapitel 22. Indre klasser | næste |
En lokal klasse er defineret i en blok programkode ligesom en lokal variabel.
public class YdreKlasse { public void metode() { // ... class LokalKlasse { // metoder og variabler her ... } LokalKlasse objektAfLokalKlasse = new LokalKlasse(); // ... } }
Lokale klasser er kun synlige og anvendelige i den blok, hvor de er defineret. Ligesom lokale variabler er de ikke synlige uden for metoden (og nøgleordene public, private, protected og static foran klassen har derfor ingen mening).
Lokale klasser kan benytte alle variabler og metoder, der er synlige inden for blokken. Dog skal lokale variabler i den omgivende metode være erklæret final, dvs. være konstante, før de kan bruges i den lokale klasse.
Lokale klasser bruges ret sjældent (men de er gode at forstå, før man går videre til anonyme klasser)
Nedenstående er et eksempel på en lokal klasse, der benytter variabler defineret i den ydre klasse:
public class YdreKlasseMedLokalKlasse { private int a1 = 1; // Objektvariabler behøver ikke være final public void prøvLokaltObjekt(final int a2) // Bemærk: final { final int a3 = 3; // Bemærk: final class LokalKlasse { // definér lokal klasse int a4 = 4; public void udskriv() { System.out.println( a4 ); System.out.println( a3 ); System.out.println( a2 ); System.out.println( a1 ); } } // slut på lokal klasse LokalKlasse lokal = new LokalKlasse(); // opret lokalt objekt fra klassen lokal.udskriv(); } public static void main(String args[]){ YdreKlasseMedLokalKlasse ydre = new YdreKlasseMedLokalKlasse(); ydre.prøvLokaltObjekt(2); } }
Resultatet bliver:
4 3 2 1