Sobes.tech
Junior

Mida tähendab 'static' märksõna Java-s?

sobes.tech AI

Vastus AI-lt

static Java-s kasutatakse elementide, mis kuuluvad klassile, mitte konkreetsele objekti eksemplarile, deklareerimiseks.

Võtmesõna võib rakendada:

  • Muutujatele (väljadele):
    • Üks eksemplar muutuja olemas kogu klassi ulatuses, sõltumata loodud eksemplaride arvust.
    • Sellele saab ligi klassi nime kaudu (näiteks ClassName.staticVariable).
    // Näide staatilisest muutujast
    public class MyMath {
        public static final double PI = 3.14159;
        // Juurdepääs: MyMath.PI
    }
    
  • Meetoditele:
    • Meetod kuulub klassile, mitte konkreetsele objektile.
    • Seda saab kutsuda klassi nime kaudu (näiteks ClassName.staticMethod()).
    • Ei pääse ligi mitte-staatilistele klassi liikmetele (muutujad või meetodid), kuna need on seotud eksemplariga.
    // Näide staatilisest meetodist
    public class Calculator {
        public static int add(int a, int b) {
            return a + b;
        }
        // Kutsumine: Calculator.add(5, 3)
    }
    
  • Initsialiseerimisblokid:
    • Täidetakse üks kord klassi laadimisel JVM-i.
    • Kasutatakse staatiliste väljade initsialiseerimiseks või muude klassiga seotud tegevuste teostamiseks.
    // Näide staatilisest blokist
    public class DataInitializer {
        static {
            // Kood, mis täidetakse klassi laadimisel
            System.out.println("DataInitializer klass laaditud.");
        }
    }
    
  • Sisemised/nested klassid:
    • Staatiline sisemine klass käitub nagu tavaline kõrgema taseme klass, välja arvatud see, et see asub teise klassi sees.
    • Ei nõua välise klassi eksemplari loomist selle kasutamiseks.
    • Omab juurdepääsu ainult välise klassi staatilistele liikmetele.
    // Näide staatilisest sisemisest klassist
    public class OuterClass {
        static class StaticInnerClass {
            // Staatilise sisemise klassi väljad ja meetodid
        }
    }
    // Juurdepääs: OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
    

static kasutamine aitab luua utiliidiklassid, hoida ühiseid andmeid ja hallata olekut klassi tasandil.