Finale bedeutet wörtlich "letztes, endgültig". Diese Bedeutung wird auch in Java ausgedrückt.
Das endgültige kann verwendet werden, um Variablen (einschließlich Klassenattribute, Objektattribute, lokale Variablen und formale Parameter), Methoden (einschließlich Klassenmethoden und Objektmethoden) und Klassen zu ändern.
1. endgültige Modifikationsklasse:
Die endgültige Änderungsklasse bedeutet, dass diese Klasse bereits die "letzte, endgültige" Bedeutung hatte. Daher können Klassen, die mit dem endgültigen Modifizierten geändert wurden, nicht vererbt werden, dh sie können keine eigenen Unterklassen haben.
Wenn die Ansicht eine Klasse erbt, die mit endgültigem geändert wurde, kann während der Zusammenstellung ein Fehler auftreten.
2. Verfahren zur endgültigen Modifikationsmethode:
Die endgültige Modifikationsmethode bedeutet, dass diese Methode bereits die "letzte, endgültige" Bedeutung hat, dh diese Methode kann nicht umgeschrieben werden (mehrere endgültige Modifikationsmethoden können überladen werden).
Eine Sache, die hier zu beachten ist, ist, dass die Voraussetzung für das Überschreiben ist, dass die Unterklasse diese Methode von der übergeordneten Klasse erben kann, wenn die endgültige modifizierte Methode in der übergeordneten Klasse auch Zugriffskontrollberechtigungen privat aufweist.
Diese Methode kann nicht direkt von der Unterklasse vererbt werden. Daher können der gleiche Methodenname und Parameter zu diesem Zeitpunkt in der Unterklasse definiert werden. Zu diesem Zeitpunkt wird es keinen Widerspruch zwischen Umschreiben und Final geben.
Neue Methoden wurden in Unterklassen neu definiert.
Die öffentliche Klasse B erweitert ein {public static void main (String [] args) {} public void getName () {}} Klasse A { /*** Weit der private Änderung kann diese Methode nicht in der Unterklasse geerbt werden. Daher wird die GetName -Methode in der Unterklasse neu definiert, * gehört zur Unterklasse selbst, und die Zusammenstellung ist normal */private endgültige Void -GetName () {}/ * Aufgrund der pblischen Modifikation kann die Unterklasse diese Methode erben, was zur Umschreiung der endgültigen Methode der übergeordneten Klasse und der Vergleichsfehler des Vergleichsfehlers führt, und das Kompilierungsfehler veröffentlichen.3.. Finale Modify -Variablen:
Die endgültige modifizierte Variable bedeutet, dass diese Variable die "letzte, endgültige" Bedeutung hat. Sobald die endgültige Variable erstmals definiert und initialisiert wurde, kann der endgültige modifizierte Variablenwert nicht geändert werden.
Hier sind einige Probleme zu beachten:
1. Die endgültigen modifizierten Variablen, ob es sich um Klassenattribute, Objektattribute, formale Parameter oder lokale Variablen handelt, müssen diese Variablen initialisiert werden (dh den Anfangswert für ihre Anzeige angeben).
Für die formalen Parameter, die nach endgültig geändert wurden, ist es leicht zu verstehen, da sie durch tatsächliche Parameter weitergegeben werden.
Für lokale Variablen, die durch endgültige geändert wurden, müssen sie die Initialisierung angezeigt werden, die nicht durch die endgültige Variablen geändert werden. Das heißt, lokale Variablen müssen initialisiert werden.
Für allgemeine Klassenattribute und Objektattribute ist dies aus dem Initialisierungsprozess der Klasse und des Objekts zu ersichtlich, dass die Standardinitialisierung zuerst durchgeführt wird. Dann werden die Variablen mit angezeigten Zuordnungen erneut initialisiert.
Für die nach endgültigen geänderten Klassenattribute und Objektattribute, wenn die Initialisierung nicht angezeigt wird, ist der Standardwert der Standard -Initialisierungswert, der dem Startpunkt der endgültigen selbst widerspricht. Daher stipuliert die Java -Syntax:
Die nach endgültigen geänderten Klassenattribute und variablen Attribute müssen angezeigt und initialisiert werden.
Darüber hinaus werden die endgültigen geänderten Variablen zum ersten Mal angezeigt und können nach der Initialisierung nicht geändert werden. Für grundlegende Datentypen ist es leicht zu verstehen. Als Referenz
Datentyp, Referenzvariablen verweisen auf das tatsächliche Objekt, speichern jedoch die Adresse des Objekts, auf das hingewiesen wird. Sein Wert kann daher nicht geändert werden, bedeutet nicht, dass das Objekt nicht geändert werden kann.
4. "Makroersatz"/"Makrovariable" Probleme, die durch endgültige Modifikation verursacht wurden
In Java bezieht sich Makrovariablen/Makroersatz auf die Tatsache, dass im Java -Code einige Variablen während der Kompilierungsperiode direkt durch ihre eigenen Werte ersetzt und in die .CLASS -Datei kompiliert werden können. Daher existiert diese Änderung nicht mehr in der kompilierten .class -Datei.
In Variablen der Typ -Zeichenfolge werden manchmal häufig die folgenden Situationen auftreten:
public class test {public static void main (String [] args) {String Country = "China"; String name = "qqyumidi"; String userInfo = Country + Name; // Nach der Zusammenstellung sind die Land- und Namensvariablen immer noch hier, String user = "China" + "qqyumidi"; // Nach der Zusammenstellung wird es Chinaqqyumidi direkt}}In Zeile 9 des obigen Code ist das kompilierte variable Ergebnis direkt Chinaqqyumidi. In Zeile 8, da Land und Name gewöhnliche Variablen sind, kann der Compiler nicht direkt den Wert von UserInfo zur Kompilierungszeit direkt bestimmen.
Das Ergebnis nach Zusammenstellung hier ist nicht direkt Chinaqqyumidi.
Wenn Sie jedoch möchten, dass der Code in Zeile 8 während der Kompilierungsperiode direkt als Chinaqqyumidi dargestellt wird, müssen Sie den endgültigen Modifikator verwenden, um das Land zu ändern und Variablen zu benennen.
Grund: Die vom endgültigen Modifikator modifizierte Variable kann ihren Wert während der Kompilierungsperiode aufgrund seiner eigenen Merkmale direkt bestimmen, und dieser Wert ist unveränderlich. Während des Zusammenstellungsprozesses können seine Variablen direkt in ihre Werte umgewandelt werden.
public class test {public static void main (String [] args) {Final String Country = "China"; Final String name = "qqyumidi"; String userInfo = Country + Name; // Nach der Zusammenstellung ist es direkt chianqqyumidi}}}Das obige ist der vollständige Inhalt der Java Final Modifier Knowledge Points (Must-Read-Artikel), den der Editor Ihnen mitbringt. Ich hoffe, es wird Ihnen hilfreich sein und wulin.com mehr ~ unterstützen ~