Java >> Java tutorial >  >> Tag >> class

Hvordan tæller man antallet af forekomster af en klasse i java?

Dette er korte selvstudier om, hvordan man tæller antallet af forekomster/objekter af en klasse i java.

Et objekt i en klasse kan oprettes ved hjælp af et nyt nøgleord i java. et objekt er en forekomst af en klasse.

En klasse kan have flere objekter.

Hvordan tæller man antallet af objekter/forekomster af en klasse i java?

static er det globale omfang, der kan oprettes og tilgås af alle objekter i en klasse. Så static medlemsvariabel bruges til at kende antallet.

Her er en trin-for-trin guide til at tælle.

  • I en klasse oprettede en static variabel(objectCount), og alle objekter har adgang til det. Disse kaldes `klasseomfangsvariabler
  • objectCount initialiseres initialt med nul
  • Static variabler er kun tilgået af static medlemmer direkte
  • Instance blok defineret og øget dens værdi med én, hver gang et nyt objekt oprettes.
  • objectCount reduceret i finalize metode, som kalder, når et objekt er klar til affaldsindsamling. Det er nyttigt at tælle ikke-affaldssamlede genstande.
  • Til sidst udskrev static medlemsvariabel ved hjælp af en klasse.

Her er et eksempel, der bruger instansblok


public class Main
{
    private static int objectCount = 0;

    {
        objectCount += 1;
    }
    public static void main(String[] args) {
        Main t1 = new Main();
        Main t2 = new Main();
        System.out.println("Object Count "+getObjectCount());

    }
      public static  int getObjectCount(){
        return objectCount;
    }
     protected void finalize() throws Throwable{
      super.finalize();
        objectCount--;
    }
}

Konstruktøren har en kode til at øge objektantallet

Destruction ved hjælp af finalize har en kode til at mindske objektantallet

Det samme eksempel kan omskrives med increment objectCount i konstruktørblok

I denne inkrementeres statiske medlemsvariabler i konstruktøren, Constructor kaldes hver gang et nyt objekt oprettes.

public class Main
{
    private static int objectCount = 0;

   public MyClass() {
        objectCount++;
    }
    public static void main(String[] args) {
        Main t1 = new Main();
        Main t2 = new Main();
        System.out.println("Object Count "+getObjectCount());

    }
    public static  int getObjectCount(){
        return objectCount;
    }
     protected void finalize() throws Throwable{
      super.finalize();
        objectCount--;
    }
}

Ovenstående programmer returnerer følgende output

Object Count 2

Konklusion

Fra oven er statiske medlemsvariabler klasseomfang, instansen kan tælles i enten instansblok- eller konstruktørtilgang.

Håber du kan lide dette indlæg.


Java tag