Unterschied zwischen statisch und endgültig in Java

Autor: Laura McKinney
Erstelldatum: 2 April 2021
Aktualisierungsdatum: 15 Kann 2024
Anonim
Unterschied zwischen statisch und endgültig in Java - Technologie
Unterschied zwischen statisch und endgültig in Java - Technologie

Inhalt


Statisch und endgültig sind die Schlüsselwörter, die in Java verwendet werden. Auf das statische Element kann zugegriffen werden, bevor das Klassenobjekt erstellt wird. Final hat einen anderen Effekt, wenn es auf Klassen, Methoden und Variablen angewendet wird. Der Hauptunterschied zwischen einem statischen und einem endgültigen Keyword besteht darin, dass statisch Mit diesem Schlüsselwort wird das Klassenmitglied definiert, das unabhängig von jedem Objekt dieser Klasse verwendet werden kann. Finale Das Schlüsselwort wird verwendet, um eine konstante Variable, eine Methode, die nicht überschrieben werden kann, und eine Klasse, die nicht vererbt werden kann, zu deklarieren.

  1. Vergleichstabelle
  2. Definition
  3. Hauptunterschiede
  4. Fazit

Vergleichstabelle

Grundlage für den VergleichStatischFinale
AnwendbarDas statische Schlüsselwort gilt für verschachtelte statische Klassen, Variablen, Methoden und Blöcke.Das letzte Schlüsselwort gilt für Klassen, Methoden und Variablen.
InitialisierungEs ist nicht erforderlich, die statische Variable zum Zeitpunkt ihrer Deklaration zu initialisieren.Es ist obligatorisch, die endgültige Variable zum Zeitpunkt ihrer Deklaration zu initialisieren.
ÄnderungDie statische Variable kann neu initialisiert werden.Die endgültige Variable kann nicht erneut initialisiert werden.
MethodenStatische Methoden können nur auf die statischen Member der Klasse zugreifen und können nur von anderen statischen Methoden aufgerufen werden.Endgültige Methoden können nicht vererbt werden.
KlasseStatische Klassenobjekte können nicht erstellt werden und enthalten nur statische Elemente.Eine letzte Klasse kann von keiner Klasse geerbt werden.
BlockMit dem statischen Block werden die statischen Variablen initialisiert.Das letzte Schlüsselwort unterstützt keinen solchen Block.


Definition von Statik

Statisch ist ein Schlüsselwort, das auf Klassen, Variablen, Methoden und Blöcke angewendet werden kann. Die Klassenmitglieder, Klassen und Blöcke können mit dem Schlüsselwort "static" vor dem Namen der Klassenmitglieder, Klassen und Blöcke statisch gemacht werden. Wenn ein Klassenmitglied als statisch deklariert wird, wird es für alle anderen Mitglieder der Klasse global. Das statische Mitglied der Klasse belegt nicht den Speicher pro Instanz, d. H. Alle Objekte teilen sich die gleiche Kopie des statischen Mitglieds. Das statische Element kann unabhängig von einem Objekt dieser Klasse verwendet werden. Sie können auf das statische Element der Klasse zugreifen, bevor das Objekt erstellt wird. Das beste Beispiel für das statische Element ist die main () -Methode. Sie wird als statisch deklariert, damit sie aufgerufen werden kann, bevor ein Objekt existiert. Die allgemeine Form, um auf das statische Mitglied der Klasse zuzugreifen:


class_name.static_member // Zugriff auf statisches Mitglied der Klasse

Im obigen Code ist Klassenname der Name der Klasse, in der das statische Element definiert ist. Statisches Element kann eine statische Variable oder eine statische Methode sein

Statische Variablen:

  • Eine statische Variable verhält sich wie eine globale Variable für alle anderen Datenelemente der Klasse.
  • Auf eine statische Variable kann zugegriffen werden, bevor ein Objekt der Klasse existiert.
  • Auf eine statische Variable kann mit dem Klassennamen zugegriffen werden, in dem sie definiert ist, gefolgt vom Punkt (.).

Statische Methoden:

  • Eine statische Methode kann nur andere statische Methoden aufrufen.
  • Eine statische Methode kann nur auf statische Daten zugreifen.
  • Eine statische Methode kann unter keinen Umständen als "dies" oder "super" bezeichnet werden.
  • Auf eine statische Methode kann mit dem Klassennamen zugegriffen werden, in dem sie definiert ist, gefolgt vom Punktoperator (.).

Statische Klasse:

  • Java hat das Konzept einer verschachtelten statischen Klasse. Die äußerste Klasse kann nicht statisch gemacht werden, während die innerste Klasse statisch gemacht werden kann.
  • Eine statische verschachtelte Klasse kann nicht auf das nicht statische Element der äußeren Klasse zugreifen.
  • Es kann nur auf die statischen Member der äußeren Klasse zugreifen.

Statischer Block:

Der statische Block wird nur einmal ausgeführt, wenn die Klasse geladen wird. Wird verwendet, um die statischen Variablen der Klasse zu initialisieren.

C ++:

In C ++ haben wir das Konzept der statischen Variablen sowie der statischen Funktionen, während C ++ keine statischen Klassen unterstützt.

C #:

C # unterstützt auch statische Klassen, statische Variablen und statische Klassen.

Java:

Java unterstützt statische verschachtelte Klassen, statische Variablen und statische Methoden.

Definition von Endgültig

Final ist ein Schlüsselwort für die Klasse, die Variable und die Methoden. Die Klasse, die Variable und die Methode werden mit dem Schlüsselwort „final“ vor ihrem Namen als final deklariert. Sobald eine Variable als final deklariert ist; Sie kann im Programm nicht weiter geändert werden. Eine endgültige Variable muss bei der Zeitdeklaration initialisiert werden. Endvariablen belegen nicht den Arbeitsspeicher pro Instanz. Alle Objekte der Klassen haben dieselbe Kopie der endgültigen Variablen.

Die als final deklarierte Methode kann nicht von der Unterklasse der Klasse überschrieben werden, in der die final-Methode deklariert ist. Wenn eine Klasse als endgültig deklariert wird, kann andere Klasse diese endgültige Klasse nicht erben. C ++, C # unterstützen das Konzept if final nicht. Java unterstützt das Konzept von final keyword und in Java. Klasse, Variable und Methode können als final deklariert werden.

  1. Das Schlüsselwort static gilt für eine verschachtelte statische Klasse, Variablen, Methoden und Blöcke. Andererseits gilt das Schlüsselwort final für Klassenmethoden und -variablen.
  2. Statische Variablen können jederzeit initialisiert werden, während zum Zeitpunkt der Deklaration eine endgültige Variable initialisiert werden muss.
  3. Eine statische Variable kann erneut initialisiert werden, während eine endgültige Variable nach der Initialisierung niemals erneut initialisiert werden kann.
  4. Eine statische Methode kann auf das statische Element der Klasse zugreifen und nur von anderen statischen Methoden aufgerufen werden. Andererseits kann die endgültige Methode niemals von einer Klasse geerbt werden.
  5. Der statische Block wird zum Initialisieren der statischen Variablen verwendet, während das Schlüsselwort final keinen Block unterstützt.

Fazit:

Sowohl das statische als auch das endgültige Schlüsselwort lösen unterschiedliche Zwecke auf, wenn sie auf Klasse, Variable und Methode angewendet werden.