Key Difference – statisk vs final i Java
Varje programmeringsspråk har en specifik syntax. Programmeraren bör följa dessa syntaxer när han skriver program. Nyckelorden för programmeringsspråk har specifika betydelser beroende på uppgifterna. De tillhandahålls av programmeringsspråket och kan inte användas för användardefinierade variabler, metoder, klasser etc. Det statiska och det sista är två nyckelord i Java. Den här artikeln diskuterar skillnaden mellan statisk och final i Java. Den viktigaste skillnaden mellan static och final i Java är att static används för att definiera klassmedlemmen som kan användas oberoende av något objekt i klassen medan final används för att deklarera en konstant variabel eller en metod som inte kan åsidosättas eller en klass som kan inte ärvas.
Vad är statiskt i Java?
En klass består av datamedlemmar (attribut) och metoder. För att anropa metoderna bör det finnas ett objekt av den specifika klassen. När en metod deklareras som statisk, behövs det inte skapas ett objekt för att anropa den metoden. Metoden kan anropas med hjälp av klassnamnet. Se programmet nedan.
Figur 01: Java-program med statiska variabler och statisk metod
Enligt ovanstående program innehåller klass A nummervariabel och visningsmetod. Båda är statiska medlemmar. Därför är det inte nödvändigt att skapa ett objekt för att komma åt talvariabeln och visningsmetoden. Programmeraren kan direkt skriva klassnamnet för att skriva ut numret och anropa metoddisplayen. Så det finns inget behov av att instansiera ett objekt. Om talvariabeln och visningsmetoden är icke-statiska, bör det finnas ett objekt av typen A.
Figur 02: Användning av statiskt block
Programmet ovan innehåller det statiska blocket och huvudmetoden. Det statiska blocket anropas när klassen laddas. Därför körs satsen i det statiska blocket före satsen i huvudblocket. Om det finns många statiska block kommer de att köras i följd.
Vad är final i Java?
I programmet kan det finnas variabler av olika slag. Om det finns en variabel som int x=1; senare i programmet kan det variabelvärdet ändras till något annat värde. En variabel som deklareras som final och initialiserad med ett värde kan inte ändras senare i programmet.
Figur 03: Program med slutlig variabel och arv
Enligt programmet ovan är x en slutvariabel. Det tilldelas ett värde 5. Det kan inte ändras något annat värde eftersom det deklareras som slutgiltigt. Java stöder objektorienterad programmering (OOP). En pelare i OOP är en polymorfism. En typ av polymorfism är överordnad. Klass A har visningsmetoden. Klassen B utökar klass A och den har sin egen visningsmetod. När du skapar ett objekt av typ B och anropar kommer displaymetoden att skriva ut "B" som utdata. Visningsmetoden för klass A åsidosätts av visningsmetoden för klass B.
Om programmeraren vad ska undvika att åsidosätta en metod, då kan han använda det sista nyckelordet för den metoden. Om visningsmetoden i klass A är final kommer visningsmetoden i B att ge ett fel eftersom den metoden inte kan åsidosättas.
Figur 04: sista nyckelordet i metoden
En annan pelare i OOP är arv. Det hjälper att återanvända den redan befintliga koden. Den nya klassen kan sträcka sig från den befintliga klassen och använda datamedlemmarna och metoderna för den befintliga klassen. Om det krävs för att sluta ärva en klass kan programmeraren använda nyckelordet "final". Se programmet nedan.
Figur 05: sista nyckelordet i klassen
Enligt ovanstående program förklaras klass A som final. När klass B förlänger A ger det ett fel eftersom klass A förklaras som final. Det kan inte ärvas av andra klasser.
Vad är likheten mellan statisk och final i Java?
Både statiska och slutgiltiga är nyckelord i Java
Vad är skillnaden mellan statisk och final i Java?
static vs final i Java |
|
Statiskt nyckelord anger att en medlemsvariabel, eller metod, kan nås utan att det krävs en instansiering av klassen den tillhör. | Det sista nyckelordet betecknar en enhet som bara kan tilldelas en gång. |
Variabler | |
De statiska variablerna kan återinitialiseras. | De slutliga variablerna kan inte återinitialiseras. |
Methods | |
Kan anropas med andra statiska metoder och bara komma åt de statiska medlemmarna i klassen. | De sista metoderna kan inte åsidosättas. |
Klass | |
Det statiska klassobjektet kan inte skapas. Den innehåller bara statiska medlemmar. | Den sista klassen kan inte ärvas av andra klasser. |
Block | |
Det statiska nyckelordet kan användas i ett block. | Det sista nyckelordet används inte med ett block. |
Sammanfattning – statisk vs final i Java
Den här artikeln diskuterade två nyckelord i Java, som statisk och final. Skillnaden mellan static och final i Java är att static används för att definiera klassmedlemmen som kan användas oberoende av något objekt i klassen medan final används för att deklarera en konstant variabel eller en metod som inte kan åsidosättas eller en klass som inte kan åsidosättas. gå i arv.