Nyckelskillnad - statisk mot final i Java
Varje programmeringsspråk har en specifik syntax. Programmeraren bör följa dessa syntaxer när man 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 slutliga är två nyckelord i Java. Denna artikel diskuterar skillnaden mellan statisk och final i Java. Nyckeldifferensen mellan statisk och slutlig i Java är att statisk används för att definiera klassmedlemmen som kan användas oberoende av vilket objekt som helst 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.
INNEHÅLL
1. Översikt och nyckeldifferens
2. Vad är statisk i Java
3. Vad är slutgiltigt i Java
4. Likheter mellan statisk och slutlig i Java
5. Jämförelse sida vid sida - statisk kontra slutlig i Java i tabellform
6. Sammanfattning
Vad är statisk 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 att skapa ett objekt för att anropa den metoden. Metoden kan anropas med hjälp av klassnamnet. Se nedanstående program.
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 nummervariabeln och visningsmetoden. Programmeraren kan direkt skriva klassnamnet för att skriva ut numret och ringa metodvisning. Så det finns inget behov av att instansiera ett objekt. Om talvariabeln och visningsmetoden är icke-statiska, bör det finnas ett objekt av typ A.
Figur 02: Användning av statiskt block
Ovanstående program innehåller det statiska blocket och huvudmetoden. Det statiska blocket anropas när klassen laddas. Därför körs uttalandet i det statiska blocket före uttalandet i huvudblocket. Om det finns många statiska block kommer de att köras i följd.
Vad är slutgiltigt 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 variabla värdet ändras till något annat värde. En variabel som deklareras som slutlig och initialiseras med ett värde kan inte ändras senare i programmet.
Figur 03: Program med slutlig variabel och arv
Enligt ovanstående program är x en slutlig variabel. Det tilldelas ett värde 5. Det kan inte ändras något annat värde eftersom det förklaras som slutgiltigt. Java stöder objektorienterad programmering (OOP). En pelare i OOP är en polymorfism. En typ av polymorfism är övergripande. Klass A har visningsmetoden. Klass B utökar klass A och har sin egen visningsmetod. När du skapar ett objekt av typ B och anropar visar displaymetoden "B" som utgång. Visningsmetoden i klass A åsidosätts av visningsmetoden i klass B.
Om programmeraren ska undvika att åsidosätta en metod kan han använda det slutliga nyckelordet för den metoden. Om visningsmetoden i klass A är slutlig kommer visningsmetoden i B att ge ett fel eftersom den metoden inte kan åsidosättas.
Figur 04: sista nyckelord i metoden
En annan pelare i OOP är arv. Det hjälper till att återanvända den redan existerande koden. Den nya klassen kan sträcka sig från den befintliga klassen och använda datakomponenterna och metoderna för den befintliga klassen. Om det krävs att sluta ärva en klass kan programmeraren använda nyckelordet "final". Se nedanstående program.
Figur 05: sista nyckelord i klassen
Enligt ovanstående program förklaras klass A som slutlig. När klass B sträcker sig A ger det ett fel eftersom klass A förklaras som slutlig. Det kan inte ärvas av andra klasser.
Vad är likheten mellan statisk och slutlig i Java?
Både statiska och slutliga är nyckelord i Java
Vad är skillnaden mellan statisk och slutlig i Java?
Skilja artikeln mitt före bordet
statisk vs final i Java |
|
Statiskt nyckelord anger att en medlemsvariabel, eller metod, kan nås utan att det krävs en instantiering av klassen till vilken 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. |
Metoder | |
Kan kallas med andra statiska metoder och bara få tillgång till klassiska medlemmar i klassen. | De slutliga metoderna kan inte åsidosättas. |
Klass | |
Det statiska klassobjektet kan inte skapas. Den innehåller endast statiska medlemmar. | Den sista klassen kan inte ärvas av andra klasser. |
Blockera | |
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 statisk och slutlig i Java är att statisk används för att definiera klassmedlemmen som kan användas oberoende av vilket objekt som helst 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 ärvas.