La plantilla vive en arrays paralelos que se desincronizan a la primera, la clase de juego sigue siendo un número (1) que solo entiende un switch, la validación está repartida por todo el código y la forja todavía no existe ni como modelo. Este paso construye de una vez el modelo del gremio con las herramientas del tema: clases, visibilidad, getters y setters, constructores, this, miembros estáticos y enumerados; y herencia y super, métodos de Object, polimorfismo, composición, clases abstractas e interfaces.
switch con números mágicos desaparecen: la opción del menú se convierte en el enum una sola vez, y a partir de ahí el programa solo habla de clases con nombre.Heroe es una clase abstracta desde el principio: lo común de todo héroe vive en la superclase, y lo específico de cada clase de juego, en su subclase — cada una con su atributo distintivo (la fuerza del guerrero, el maná del mago, la precisión del arquero) y su habilidad con nombre.equals y hashCode. Hoy solo se garantiza la condición a mano — la estructura que la exigirá llega en el 04.this, miembros estáticos y enum; y herencia y super, clases abstractas, interfaces, polimorfismo y enlazado dinámico, composición frente a herencia, y los métodos de Object: toString para las fichas y equals/hashCode para la identidad de los ítems.private y qué getters se publican? Regla de la casa: se publica lo mínimo que alguien necesita usar.toString y dónde un método propio?equals/hashCode de Item espera su consumidor: un Set que rechace duplicados → (04).