Dette kapitels afsnit om final på variabler forudsættes af Kapitel 22, Indre klasser.
Forudsætter Kapitel 6, Nedarvning og Kapitel 7, Pakker og ønske om at vide mere om emner som først bliver relevante når man laver større programmer.
Det er vigtigt at styre adgangen til at kalde metoder og ændre på variabler, i særdeleshed når programmerne bliver store. Det kan lette overskueligheden meget hvis interne variabler, metoder og klasser er skjult for programmøren.
Adgang styres med nøgleordene public, protected og private. Adgangskontrol ud over public/private bliver først interessant når der er mange klasser og programmet spænder over flere pakker. Se eventuelt kapitlet om pakker.
Variabler og metoder erklæret public er altid tilgængelige, inden og uden for klassen.
Variabler og metoder erklæret protected er tilgængelige for alle klasser inden for samme pakke. Klasser i andre pakker kan kun få adgang, hvis de er nedarvinger.
Skriver man ingenting, er det kun klasser i samme pakke, der har adgang til variablen eller metoden.
Hvis en variabel eller metode er erklæret private, kan den kun benyttes inden for samme klasse (og kan derfor ikke tilsidesættes med nedarvning). Det er det mest restriktive.
Adgangen kan sættes på skemaform:
Tabel 21-1. Adgangsregler
Adgang |
public |
protected |
(ingenting) |
private |
---|---|---|---|---|
i samme klasse |
ja |
ja |
ja |
ja |
klasse i samme pakke |
ja |
ja |
ja |
nej |
arving i en anden pakke |
ja |
ja |
nej |
nej |
ej arving og i en anden pakke |
ja |
nej |
nej |
nej |
Holder man sig inden for samme pakke, er der altså ingen forskel mellem public, protected og ingenting.
Klasser kan erklæres public eller ingenting (men ikke protected eller private).
Klasser erklæres normalt public og er tilgængelige fra alle pakker.
public class X { // ... }
Undlader man public, er klassen kun tilgængelig inden for samme pakke.
class X
{
// ...
}
Man kan have flere klasser i en fil, men højst en, der er public, og denne klasse skal hedde det samme som filnavnet.