Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java Static Uitgelegd: Variabelen, Methodes en Blokken – Praktische Voorbeelden

In Java komt het static sleutelwoord voor in drie verschillende contexten: statische variabelen, statische methodes en statische blokken. Elk speelt een unieke rol in de levenscyclus van een klasse en zijn instanties.

Statische Variabelen in Java

Een statische variabele is een klasse-niveau veld dat slechts één keer geïnitialiseerd wordt wanneer de klasse voor het eerst geladen wordt. In tegenstelling tot instantievariabelen, wordt één enkele kopie van een statische variabele gedeeld door alle objecten van die klasse.

  • Er bestaat slechts één kopie, gedeeld over alle instanties.
  • Direct toegankelijk via KlasseNaam.variabeleNaam zonder een object aan te maken.
  • Geïnitialiseerd voordat instantievelden ingesteld worden.

Syntax:

public static int teller;

Statische Methodes in Java

Statische methodes behoren tot de klasse in plaats van tot een specifieke instantie. Ze kunnen aangeroepen worden zonder een object te maken en hebben alleen toegang tot statische data.

  • Kunnen andere statische methodes aanroepen, maar geen instantiemethodes.
  • Wordt aangeroepen met KlasseNaam.methodeNaam().
  • Kunnen geen this of super gebruiken omdat ze niet aan een instantie gebonden zijn.

Alle main methodes zijn statisch zodat de JVM een applicatie kan starten voordat er objecten bestaan.

Praktisch Voorbeeld: Statische Variabelen en Methodes Gebruiken

Hieronder is een eenvoudig programma dat demonstreert hoe een statische teller gedeeld wordt over meerdere Student objecten.

public class Demo {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.showData();
        Student s2 = new Student();
        s2.showData();
        // Student.b++; // uncomment om de teller te wijzigen
        // s1.showData();
    }
}

class Student {
    int a; // instantievariabele, standaard 0
    static int b; // statische teller, eenmaal geïnitialiseerd op 0
    Student() {
        b++; // verhoog teller elke keer dat een Student wordt aangemaakt
    }
    public void showData() {
        System.out.println("Waarde van a = " + a);
        System.out.println("Waarde van b = " + b);
    }
}

Compileer en voer uit met java Demo om de volgende output te zien:

Java Static Uitgelegd: Variabelen, Methodes en Blokken – Praktische Voorbeelden

Het diagram hieronder illustreert hoe referentievariabelen en objecten worden aangemaakt, en hoe de statische variabele b gedeeld wordt over instanties.

Java Static Uitgelegd: Variabelen, Methodes en Blokken – Praktische Voorbeelden

Om de statische variabele van buitenaf te benaderen, gebruik KlasseNaam.variabeleNaam:

Student.b++; // verhoogt de gedeelde teller
s1.showData(); // toont bijgewerkte waarde van b

Het proberen om een instantievariabele te benaderen vanuit een statische context resulteert in een compilatiefout:

error: non-static variable a cannot be referenced from a static context
a++;

Dit gebeurt omdat statische methodes niet direct kunnen interageren met instantievelden.

Statische Blokken in Java

Een statisch blok is een speciaal blok code dat één keer uitgevoerd wordt wanneer de klasse voor het eerst in de JVM geladen wordt. Het is ideaal voor het initialiseren van statische velden die meer vereisen dan een simpele toewijzing.

class Test {
    static int a;
    static int b;
    static {
        a = 10;
        b = 20;
    }
}

Het uitvoeren van het volgende programma demonstreert de output van een statisch blok:

public class Demo {
    static int a;
    static int b;
    static {
        a = 10;
        b = 20;
    }
    public static void main(String[] args) {
        System.out.println("Waarde van a = " + a);
        System.out.println("Waarde van b = " + b);
    }
}

Output:

Waarde van a = 10
Waarde van b = 20

Java

  1. Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
  2. Java instanceof operator: een uitgebreide gids
  3. Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
  4. Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
  5. Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
  6. Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
  7. Java Exception Handling meesteren: Try, Catch, Finally, Throw & Throws uitgelegd
  8. Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
  9. Java Generics: Herbruikbare, type-veilige code bouwen
  10. Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen
  11. Interface vs Abstracte Klasse in Java: De Juiste Abstractie Kiezen