Tema 5 – Ejercicio 4
Uso de atributos y métodos estáticos en Java
📄 Enunciado
Vamos a implementar una clase llamada ContadorObjetos qué tenga un atributo estático para llevar la cuenta del número total de objetos creados.
Además, tendrá un método estático para mostrar cuántos objetos se han creado hasta el momento.
📌 Requisitos
- Crear la clase
ContadorObjetos. - Definir un atributo estático
totalObjetosinicializado a 0. - Incrementar el contador cada vez qué se crea un objeto.
- Crear un método estático qué muestre el total de objetos creados.
- Desde otra clase, crear varios objetos y mostrar el contador.
✅ Clase ContadorObjetos
package Ejercicios.ejercicio4;
class ContadorObjetos {
// Atributo estático
private static int totalObjetos = 0;
// Constructor
public ContadorObjetos() {
totalObjetos++;
}
// Método estático
static void mostrarTotalObjetos() {
System.out.println(
"Número total de objetos creados hasta el momento: " + totalObjetos
);
}
}
✅ Clase Main
package Ejercicios.ejercicio4;
public class Main {
public static void main(String[] args) {
// Mostrar total inicial
ContadorObjetos.mostrarTotalObjetos();
// Crear objetos
ContadorObjetos obj1 = new ContadorObjetos();
ContadorObjetos obj2 = new ContadorObjetos();
ContadorObjetos obj3 = new ContadorObjetos();
// Utilizar el método estático
ContadorObjetos.mostrarTotalObjetos();
}
}
🧠 Explicación
El atributo totalObjetos es estático, lo qué significa
qué pertenece a la clase y no a cada objeto individual.
Cada vez qué se crea una nueva instancia de ContadorObjetos, el
constructor incrementa el valor del contador compartido por todos los objetos.
El método mostrarTotalObjetos() también es estático, por lo qué puede
llamarse directamente desde la clase sin necesidad de crear un objeto.
❓ Preguntas de reflexión
¿qué diferencia hay entre un atributo/método estático y uno no estático?
Un atributo o método estático pertenece a la clase y es compartido por todas las instancias. Un atributo o método no estático pertenece a cada objeto de forma independiente.
¿qué pasaría si totalObjetos no fuera estático?
Cada objeto tendría su propio contador, por lo qué no se podría llevar la cuenta total de objetos creados. El valor siempre sería independiente en cada instancia.
¿Por qué podemos llamar al método mostrarTotalObjetos sin crear una instancia?
¿qué es un método estático. Los métodos estáticos pertenecen a la clase y se pueden invocar directamente usando el nombre de la clase.
🏁 Conclusión
Este ejercicio muestra cómo los atributos y métodos estáticos permiten compartir información común entre todos los objetos de una clase, siendo muy útiles para contadores, configuraciones globales o utilidades generales.