Verschil tussen statisch en finaal in Java

Schrijver: Laura McKinney
Datum Van Creatie: 2 April 2021
Updatedatum: 10 Kunnen 2024
Anonim
what is the diff between static and final in java
Video: what is the diff between static and final in java

Inhoud


Statisch en definitief zijn beide de sleutelwoorden die in Java worden gebruikt. Het statische lid is toegankelijk voordat het klasseobject is gemaakt. Final heeft een ander effect wanneer het wordt toegepast op klasse, methoden en variabelen. Het belangrijkste verschil tussen een statisch en een definitief trefwoord is dat statisch Dit trefwoord wordt gebruikt om het lid van de klasse te definiëren dat onafhankelijk van elk object van die klasse kan worden gebruikt. Laatste trefwoord wordt gebruikt om een ​​constante variabele aan te geven, een methode die niet kan worden genegeerd en een klasse die niet kan worden geërfd.

  1. Vergelijkingstabel
  2. Definitie
  3. Belangrijkste verschillen
  4. Gevolgtrekking

Vergelijkingstabel

Basis voor vergelijkingStatischLaatste
Van toepassingStatisch trefwoord is van toepassing op geneste statische klasse, variabelen, methoden en blokken.Laatste trefwoord is van toepassing op klasse, methoden en variabelen.
initialisatieHet is niet verplicht om de statische variabele te initialiseren op het moment van declaratie.Het is verplicht om de laatste variabele te initialiseren op het moment van de aangifte.
WijzigingDe statische variabele kan opnieuw worden geïnitialiseerd.De laatste variabele kan niet opnieuw worden geïnitialiseerd.
methodenStatische methoden hebben alleen toegang tot de statische leden van de klasse en kunnen alleen worden aangeroepen door andere statische methoden.Definitieve methoden kunnen niet worden geërfd.
KlasseStatische klassenobject kan niet worden gemaakt en bevat alleen statische leden.Een laatste klas kan door geen enkele klas worden geërfd.
BlokStatisch blok wordt gebruikt om de statische variabelen te initialiseren.Laatste trefwoord ondersteunt zo'n blok niet.


Definitie van statisch

Statisch is een trefwoord dat van toepassing is op de klassen, variabelen, methoden en blokken. De klasleden, klasse en blokken kunnen statisch worden gemaakt met behulp van het "statische" sleutelwoord voor de naam van respectievelijk de klassenleden, klasse en blokken. Wanneer een klaslid statisch wordt verklaard, wordt het globaal voor alle andere leden van de klas. Het statische lid van de klasse bezet geen geheugen per instantie, d.w.z. alle objecten delen dezelfde kopie van het statische lid. Het statische lid kan onafhankelijk van elk object van die klasse worden gebruikt. U hebt toegang tot het statische lid van de klasse voordat het object is gemaakt. Het beste voorbeeld van het statische lid is de methode main (), het wordt statisch verklaard zodat het kan worden opgeroepen voordat er een object bestaat. Het algemene formulier voor toegang tot het statische lid van de klasse:

class_name.static_member // toegang tot statisch lid van de klasse

In bovenstaande code is class_name de naam van de klasse waarin het static_member is gedefinieerd. Statisch lid kan een statische variabele of een statische methode zijn


Statische variabelen:

  • Een statische variabele fungeert als een globale variabele voor alle andere gegevensleden van de klasse.
  • Er is toegang tot een statische variabele voordat een object van de klasse bestaat.
  • U kunt toegang krijgen tot een statische variabele met de klassennaam waarin deze is gedefinieerd, gevolgd door de operator dot (.).

Statische methoden:

  • Een statische methode kan alleen andere statische methoden oproepen.
  • Een statische methode heeft alleen toegang tot statische gegevens.
  • Een statische methode kan onder geen enkele voorwaarde naar "dit" of "super" worden verwezen.
  • U kunt toegang krijgen tot een statische methode met de klassennaam waarin deze is gedefinieerd, gevolgd door de operator dot (.).

Statische klasse:

  • Java heeft het concept van geneste statische klasse. De buitenste klasse kan niet statisch worden gemaakt, terwijl de binnenste klasse statisch kan worden gemaakt.
  • Een statische geneste klasse heeft geen toegang tot het niet-statische lid van de buitenste klasse.
  • Het heeft alleen toegang tot de statische leden van de buitenste klasse.

Statische blok:

Statisch blok wordt slechts eenmaal uitgevoerd wanneer de klasse wordt geladen. Wordt gebruikt om de statische variabelen van de klasse te initialiseren.

C ++:

In C ++ hebben we het concept van statische variabelen en statische functies, terwijl C ++ geen statische klasse ondersteunt.

C #:

C # ondersteunt ook statische klasse, statische variabelen en statische klasse.

Java:

Java ondersteunt statische geneste klasse, statische variabelen, statische methoden.

Definitie van finale

Finaal is een trefwoord dat van toepassing is op de klasse, variabele en methoden. De klasse, variabele en de methode worden als definitief verklaard met behulp van het trefwoord "final", voorafgegaan door hun naam. Zodra een variabele als definitief wordt verklaard; het kan niet verder in het programma worden gewijzigd. Een laatste variabele moet worden geïnitialiseerd bij de tijdsverklaring. Laatste variabelen nemen geen geheugen in beslag per geval. Alle objecten van de klassen delen dezelfde kopie van de laatste variabele.

De als definitief verklaarde methode kan niet worden overschreven door de subklasse van die klasse waarin de definitieve methode wordt verklaard. Wanneer een klasse als definitief wordt verklaard, kan een andere klasse die laatste klasse niet erven. C ++, C # ondersteunen het concept niet als laatste trefwoord. Java ondersteunt het concept van het laatste trefwoord en in Java; klasse, variabele en methode kunnen als definitief worden verklaard.

  1. Het statische trefwoord is van toepassing op een geneste statische klasse, variabelen, methoden en blokken. Anderzijds is het laatste trefwoord van toepassing op klassemethoden en variabelen.
  2. Statische variabele kan op elk moment worden geïnitialiseerd, terwijl een definitieve variabele moet worden geïnitialiseerd op het moment van aangifte.
  3. Een statische variabele kan opnieuw worden geïnitialiseerd, terwijl een definitieve variabele nooit opnieuw kan worden geïnitialiseerd.
  4. Een statische methode heeft toegang tot het statische lid van de klasse en kan alleen worden opgeroepen door andere statische methoden. Aan de andere kant kan de uiteindelijke methode nooit door een klasse worden geërfd.
  5. Statisch blok wordt gebruikt om de statische variabelen te initialiseren, terwijl het laatste trefwoord geen enkel blok ondersteunt.

Gevolgtrekking:

Zowel statisch als definitief sleutelwoord lossen ander doel op wanneer toegepast op klasse, variabele en methode.