EJERCICIO 1 Julio 25, 2008
Posted by beceoca in 1.trackback
BEATRIZ GARCÍA VIZUETE
ENUNCIADO EJERCICIO 1
Consiste en crear un conjunto de clases que representen personajes de juegos de rol. Todos los atributos los vamos a considerar de tipo int. Hay que crear cuatro clases y una interfaz.
Clase Personaje: es la clase base, que contiene las características generales. De esta clase no se podrán crear instancias.
-Atributos: vida del personaje, fuerza, inteligencia, astucia, vigor inicial(tiene el mismo valor para todos los personajes, es decir, si alguno cambia su vigor, el nuevo valor cambia para todos).
-Métodos: tiene un método imprimir sin implementar(las clases derivadas están obligadas a redefinirlo), tiene sus correspondientes métodos de acceso a los atributos en el que deberán notificar al método personajeCambiado(Personaje)del objeto que creó el personaje cada cambio que se produzca en la información del personaje y por último tiene varios constructores donde se inicializa la información del personaje y deberá tomar nota del objeto que los llamó.
Clase Guerrero: es una clase derivada de la clase base Personaje, es decir, que tiene los mismos atributos y métodos que la clase Personaje y además añade la siguiente información:
-Atributos: habilidad, puntería y una variable que lleva la cuenta de cuantos guerreros hay en cada momento.
-Métodos: tiene un método para imprimir toda la información del personaje.
Clase Maga: es una clase derivada de la clase base Personaje, es decir, que tiene los mismos atributos y métodos que la clase Personaje y además añade la siguiente información:
-Atributos: magia, poder de la luz y una variable que lleva la cuenta de cuantas magas hay en cada momento.
-Métodos: tiene un método para imprimir toda la información del personaje.
Pero además, esta clase debe implementar la interfaz Hechicero, es decir, implementar los dos métodos que tiene en este caso.
Clase Prueba: esta clase contiene el método main que dará un valor inicial al vigor de los personajes y creará una maga. Esta clase también debe incluir un método personajeCambiado(Personaje) que imprime por pantalla las características del personaje cambiado.
Interfaz Hechicero: como se ha dicho antes esta interfaz contiene dos métodos: doblar magia y doblar poder de la luz.
SOLUCIÓN EJERCICIO 1
CLASE PERSONAJE
public abstract class Personaje{
private int vidas;
private int fuerza;
private int inteligencia;
private int astucia;
public static int vigorInicial;
private Prueba p;
public Personaje(){
}
public Personaje(int vidas, int fuerza, int inteligencia, int astucia, int vigorInicial, Prueba p){
this.vidas=vidas;
this.fuerza=fuerza;
this.inteligencia=inteligencia;
this.astucia=astucia;
this.vigorInicial=vigorInicial;
this.p=p;
}
public int dameVidas(){
return this.vidas;
}
public void ponVidas(int vidas){
this.vidas=vidas;
p.personajeCambiado(Personaje);
}
public int dameFuerza(){
return this.fuerza;
}
public void ponFuerza(int fuerza){
this.fuerza=fuerza;
p.personajeCambiado(Personaje);
}
public int dameInteligencia(){
return this.inteligencia;
}
public void ponInteligencia(int inteligencia){
this.inteligencia=inteligencia;
p.personajeCambiado(Personaje);
}
public int dameAstucia(){
return this.astucia;
}
public void ponAstucia(int astucia){
this.astucia=astucia;
p.personajeCambiado(Personaje);
}
public int dameVigorInicial(){
return this.vigorInicial;
}
public void ponVigorInicial (int vigorInicial){
this.vigorInicial=vigorInicial;
p.personajeCambiado(Personaje);
}
public abstract void imprimir();
} FIN CLASE PERSONAJE
CLASE GUERRERO
public class Guerrero extends Personaje{
private int habilidad;
private int punteria;
private int numGuerreros;
public Guerrero(){
super();
habilidad=0;
punteria=0;
numGuerreros++;
}
public Guerrero(int vidas, int fuerza, int inteligencia, int astucia, int vigorInicial, Prueba p , int habilidad, int punteria, int numGuerreros){
super(vidas,fuerza,inteligencia,astucia,vigorInicial,p);
this.habilidad=habilidad;
this.punteria=punteria;
this.numGuerreros=numGuerreros;
}
public int dameHabilidad (){
return this.habilidad;
}
public void ponHabilidad (int habilidad){
this.habilidad = habilidad;
}
public int damePunteria (){
return this.punteria;
}
public void ponPunteria(int punteria){
this.punteria=punteria;
}
public int dameNumGuerreros(){
return this.numGuerreros;
}
public void ponNumGuerreros(int numGuerreros){
this.numGuerreros=numGuerreros;
}
public void imprimir(){
System.out.println(“Vidas:” + vidas);
System.out.println(“Fuerza:” + fuerza);
System.out.println(“Inteligencia:” + inteligencia);
System.out.println(“Astucia:” + astucia);
System.out.println(“Vigor Inicial:” + vigorInicial);
System.out.println(“Habilidad:” + habilidad);
System.out.println(“Punteria:” + punteria);
System.out.println(“Numero de Guerreros:” + numGuerreros);
}
}FIN CLASE GUERRERO
CLASE MAGA
public class Maga extends Personaje implements Hechicero{
private int magia;
private int poderLuz;
private int numMagas;
public Maga(){
super();
magia=0;
poderLuz=0;
numMagas++;
}
public Maga(int vidas, int fuerza, int inteligencia, int astucia, int vigorInicial, Prueba p, int magia, int poderLuz, int numMagas){
super(vidas,fuerza,inteligencia,astucia,vigorInicial,p);
this.magia=magia;
this.poderLuz=poderLuz;
this.numMagas=numMagas;
}
public int dameMagia (){
return this.magia;
}
public void ponMagia (int magia){
this.magia= magia;
}
public int damePoderLuz(){
return this.poderLuz;
}
public void ponPoderLuz(int poderLuz){
this.poderLuz=poderLuz;
}
public int dameNumMagas(){
return this.numMagas;
}
public void ponNumMagas(int numMagas){
this.numMagas=numMagas;
}
public void doblarMagia(int magia){
this.magia=magia*2;
}
public void doblarPoderLuz(int poderLuz){
this.poderLuz = poderLuz*2;
}
public void imprimir(){
System.out.println(“Vidas:” + vidas);
System.out.println(“Fuerza:” + fuerza);
System.out.println(“Inteligencia:” + inteligencia);
System.out.println(“Astucia:” + astucia);
System.out.println(“Vigor Inicial:” + vigorInicial);
System.out.println(“Magia:” + magia);
System.out.println(“Poder de la Luz:” + poderLuz);
System.out.println(“Numero de Magas:” + numMagas);
}
}FIN CLASE MAGA
INTERFAZ HECHICERO
public interface Hechicero{
public void doblarMagia(int magia);
public void doblarPoderLuz(int poderLuz);
}FIN INTERFAZ HECHICERO
CLASE PRUEBA
public class Prueba{
public static void main (String [] args){
int vigorInicial = 5;
Personaje.vigorInicial=vigorInicial;
Prueba p=new Prueba();
Maga mago = new Maga(5,2,4,4,vigorInicial,p,7,6,1);
}
public void personajeCambiado(Personaje){
Personaje.imprimir();
}
}FIN CLASE PRUEBA
CONCEPTOS EJERCICIO 1
En este primer ejercicio los conceptos que se han tratado han sido:
-El concepto de herencia forzada(abstract)
-El concepto de interfaz.
-Elementos de clase(static)
.Uso de atributos e invocación de métodos
Comentarios»
No comments yet — be the first.