9. POO básico
La Programación Orientada a Objetos (POO) nos permite estructurar el código pensando en entidades del mundo real o de un videojuego.
1. Clases vs Objetos (La clase Espada)
Una clase es como el plano o plantilla. Un objeto es una instancia concreta creada a partir de esa plantilla.
2. Encapsulamiento: private, public y Getters/Setters
Los atributos definidos como private solo se pueden acceder o modificar desde dentro de la propia clase.
¿Es obligatorio crear get y set para todos los atributos?
No. Solo debes crearlos cuando sea necesario acceder o modificar un atributo desde fuera de forma controlada (por ejemplo, para validar que el daño no sea negativo). Si un valor solo se usa internamente (como la durabilidad al usar la espada), no necesitas getters ni setters para él.
3. Asociación entre Clases (Player tiene una Espada)
Las clases pueden relacionarse entre sí. Por ejemplo, un Player puede contener una Espada como atributo y combatir contra otro Player.
Ejercicio
Agregá a la clase Espada una comprobación para que si durability == 0, la espada ya no cause daño en getDamage() o devuelva 0 de daño. Luego probá realizar varios ataques en main() hasta romper la espada.


