Zugriffsmodifizierer (Java): Unterschied zwischen den Versionen
Aus Byte-Welt Wiki
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 57: | Zeile 57: | ||
| - Nur im eigenen Paket sichtbar <br\>- Nur im eigenen Paket sichtbar <br\> - Nur im eigenen Paket sichtbar | | - Nur im eigenen Paket sichtbar <br\>- Nur im eigenen Paket sichtbar <br\> - Nur im eigenen Paket sichtbar | ||
|- | |- | ||
| private | |||
| - Member | |||
| - Nur in dieser Klasse sichtbar (wo sie definiert wurde) | |||
|- | |||
| protected | |||
| - Member | |||
| - Im eigenen package sichtbar und in Subklassen | |||
|- | |||
| public | |||
| - Klasse <br\>- Interface <br\>- Member | |||
| - Von überall aus sichtbar <br\> - Von überall aus sichtbar <br\> - Von überall aus da sichtbar, wo auch die Klasse sichtbar ist | |||
|- | |||
| strictfp | |||
| - Klasse <br\>- Methode | |||
| - Alle Methoden in der Klasse gehen strikt nach der IEEE-Norm vor <br\>- Methode geht strikt nach der IEEE-Norm vor | |||
|- | |||
| static | |||
| - Klasse <br\>- Methode <br\>- Objektvariablen <br\> - Initialisierer | |||
| - Macht eine innere Klase zu einer Top-Level-Klasse <br\> - Die Klassenmethode wird durch den Klassennamen aufgerufen <br\>- Zugriff über Klassennamen <br\> - Wird aufgerufen beim Laden der Klasse | |||
|- | |||
| synchronized | |||
| - Methode | |||
| - Bei statischen Methoden: lock für die dazugehörige Klasse, bei nicht-statischen methoden: lock für die jeweilige Objekt-Instanz | |||
|- | |||
| transient | |||
| - Objektvariable | |||
| - Wird nicht mit dem Objekt serialisiert | |||
|- | |||
| volatile | |||
| - Objektvariable | |||
| - Zugriffe auf diese Variablen sind atomar | |||
|} | |||
== Modifizierer: Alle Kombinationen == | |||
{| {{Prettytable}} | |||
! Modifizierer | |||
! Klasse | |||
! Variable | |||
! Methode | |||
! Konstruktor | |||
|- | |||
| public | |||
| ja | |||
| ja | |||
| ja | |||
| ja | |||
|- | |||
| protected | |||
| nein | |||
| ja | |||
| ja | |||
| ja | |||
|- | |||
| keiner(package/default) | |||
| ja | |||
| ja | |||
| ja | |||
| ja | |||
|- | |||
| private | |||
| nein | |||
| ja | |||
| ja | |||
| nein | |||
|- | |||
| final | |||
| ja | |||
| ja | |||
| ja | |||
| nein | |||
|- | |||
| abstract | |||
| ja | |||
| nein | |||
| ja | |||
| nein | |||
|- | |||
| static | |||
| nein | |||
| ja | |||
| ja | |||
| nein | |||
|- | |||
| nativ | |||
| nein | |||
| nein | |||
| ja | |||
| nein | |||
|- | |||
| transient | |||
| nein | |||
| ja | |||
| nein | |||
| nein | |||
|- | |||
| volatile | |||
| nein | |||
| ja | |||
| nein | |||
| nein | |||
|- | |||
| synchronized | |||
| nein | |||
| nein | |||
| ja | |||
| nein | |||
|- | |||
| strictfp | |||
| ja | |||
| nein | |||
| ja | |||
| ja | |||
|} | |||
Quelle: <br\> | |||
[http://www.javacamp.org/javaI/Modifier.html Java Modifiers] <br\> | |||
[http://de.wikipedia.org/wiki/Java-Syntax Java-Syntax ? Wikipedia] | |||
Version vom 17. September 2013, 11:11 Uhr
Zugriffsmodifizierer
| Modifizierer | Die Klasse selbst | Paket-Klassen/innere-Klassen | Unterklassen | Sonstige Klassen |
|---|---|---|---|---|
| private | ja | nein | nein | nein |
| public | ja | ja | ja | ja |
| protected | ja | ja | ja | nein |
| ohne/leer | ja | ja | nein | nein |
Modifizierer Übersicht
| Modifizierer | Anwendbar auf | Bedeutung |
|---|---|---|
| abstract | - Klasse <br\>- Interface <br\>- Methode | - Kann nicht instanziiert werden <br\>- Interfaces sind immer abstrakt (modifier optional)<br\> - Hat keinen Body, enthält nur Signatur. (die umschließende Klasse ist selbst auch abstrakt) |
| final | - Klasse <br\>- Methode <br\>- Objektvariablen<br\>- Variablen | - Kann nicht erweitert werden <br\> - Kann nicht überschrieben werden<br\>- Können ihren Wert nicht ändern <br\>- Können ihren Wert nicht ändern |
| nativ | - Methode | - Plattform spezifisch (keine Signatur, kein Body) |
| leer/keiner(package) | - Klasse <br\>- Interface <br\>- Member | - Nur im eigenen Paket sichtbar <br\>- Nur im eigenen Paket sichtbar <br\> - Nur im eigenen Paket sichtbar |
| private | - Member | - Nur in dieser Klasse sichtbar (wo sie definiert wurde) |
| protected | - Member | - Im eigenen package sichtbar und in Subklassen |
| public | - Klasse <br\>- Interface <br\>- Member | - Von überall aus sichtbar <br\> - Von überall aus sichtbar <br\> - Von überall aus da sichtbar, wo auch die Klasse sichtbar ist |
| strictfp | - Klasse <br\>- Methode | - Alle Methoden in der Klasse gehen strikt nach der IEEE-Norm vor <br\>- Methode geht strikt nach der IEEE-Norm vor |
| static | - Klasse <br\>- Methode <br\>- Objektvariablen <br\> - Initialisierer | - Macht eine innere Klase zu einer Top-Level-Klasse <br\> - Die Klassenmethode wird durch den Klassennamen aufgerufen <br\>- Zugriff über Klassennamen <br\> - Wird aufgerufen beim Laden der Klasse |
| synchronized | - Methode | - Bei statischen Methoden: lock für die dazugehörige Klasse, bei nicht-statischen methoden: lock für die jeweilige Objekt-Instanz |
| transient | - Objektvariable | - Wird nicht mit dem Objekt serialisiert |
| volatile | - Objektvariable | - Zugriffe auf diese Variablen sind atomar |
Modifizierer: Alle Kombinationen
| Modifizierer | Klasse | Variable | Methode | Konstruktor |
|---|---|---|---|---|
| public | ja | ja | ja | ja |
| protected | nein | ja | ja | ja |
| keiner(package/default) | ja | ja | ja | ja |
| private | nein | ja | ja | nein |
| final | ja | ja | ja | nein |
| abstract | ja | nein | ja | nein |
| static | nein | ja | ja | nein |
| nativ | nein | nein | ja | nein |
| transient | nein | ja | nein | nein |
| volatile | nein | ja | nein | nein |
| synchronized | nein | nein | ja | nein |
| strictfp | ja | nein | ja | ja |
Quelle: <br\> Java Modifiers <br\> Java-Syntax ? Wikipedia
