La idea es usar un miembro estático en la clase para contar objetos. Todos los objetos de la clase comparten un miembro estático, todos los datos estáticos se inicializan a cero cuando se crea el primer objeto si no hay otra inicialización presente, y el constructor y la función de miembro estático solo pueden acceder al miembro de datos estáticos, otras funciones de miembro estático y cualquier otra función desde fuera de la clase.
Creamos una variable de tipo int estática y la colocamos como una variable estática con un operador de incremento para que aumente en 1 en el constructor.
// Java program Find Out the Number of Objects Created // of a Class class Test { static int noOfObjects = 0; // Instead of performing increment in the constructor // instance block is preferred to make this program generic. { noOfObjects += 1; } // various types of constructors // that can create objects public Test() { } public Test(int n) { } public Test(String s) { } public static void main(String args[]) { Test t1 = new Test(); Test t2 = new Test(5); Test t3 = new Test("GFG"); // We can also write t1.noOfObjects or // t2.noOfObjects or t3.noOfObjects System.out.println(Test.noOfObjects); } }
Producción:
3