Hola,
Aquí dejo mi ejercicio del Tema "CU00695B clases abstractas java métodos abstract class api ejemplo ejercicio" para su corrección:
Superclase Persona:
/**
* EJERCICIO DE HERENCIAS + CLASES Y MÉTODOS ABSTRACTOS.<br>
* Esta Clase define una Superclase de la que "beberan" otras clases.<br>
* Clase 1 del Ejercicio del Tema "CU00695B clases abstractas java metodos abstract class api ejemplo ejercicio".
* @author Lorenzo Fernández Asensio
* @version 20151209.01
*/
public class Persona_CU00695B {
// Inicialización de Atributos
private String nombre;
private String apellidos;
private int edad;
/**
* Constructor 1 del Producto - Atribututos sin asignación de Valores
* @param nombre El parámetro nombre define el Nombre de la Persona
* @param apellidos El parámetro apellidos define los Apellidos de la Persona
* @param edad El parámetro edad define la edad de la Persona
*/
public Persona_CU00695B() {
nombre = "";
apellidos = "";
edad = 0;
} // Cierre del constructor 1
/**
* Constructor 2 del Producto - Atribututos con asignación de Valores
* @param nombre El parámetro nombre define el Nombre de la Persona
* @param apellidos El parámetro apellidos define los Apellidos de la Persona
* @param edad El parámetro edad define la edad de la Persona
*/
public Persona_CU00695B (String nombre, String apellidos, int edad) {
this.nombre = nombre;
this.apellidos = apellidos;
this.edad = edad;
} // Cierre del constructor 2
/**
* Método para para obtener la Nombre de la Persona
* @return El Nombre de la Persona
*/
public String getNombre() {return nombre;}
/**
* Método para para obtener los Apellidos de la Persona
* @return Los Apellidos de la Persona
*/
public String getApellidos() {return apellidos;}
/**
* Método para para obtener la Edad de la Persona
* @return La Edad de la Persona
*/
public int getEdad() {return edad;}
/**
* Método para para obtener los datos de la Persona
* @return Los datos de la Persona
*/
public String toString() {
/* Se transforma edad en un Integer para poder aplicarle el método toString().
* De otra manera no se puede hacer por ser edad un tipo primitivo.*/
Integer datoEdad = edad;
// Se devuelve uns String con los datos de la Persona
return "- ".concat(nombre).concat(" ").concat(apellidos)
.concat(" de ").concat(datoEdad.toString().concat(" años,") );
} // Cierre del método para para obtener los datos de la Persona
} //Cierre de la clase
Subclase Abstracta Legislador:
/**
* EJERCICIO DE HERENCIAS + CLASES Y MÉTODOS ABSTRACTOS.<br>
* Esta Clase define una Subclase Abstracta que "bebe" de la Superclase Persona_CU00695B.<br>
* Clase 2 del Ejercicio del Tema "CU00695B clases abstractas java metodos abstract class api ejemplo ejercicio".
* @author Lorenzo Fernández Asensio
* @version 20151209.01
*/
public abstract class Legislador_CU00695B extends Persona_CU00695B {
// Campos específicos de la subclase.
private String provinciaQueRepresenta,
idLegislador;
int antiguedad;
/**
* Constructor 1 del Profesor - Atribututos sin asignación de Valores
* @param provinciaQueRepresenta El parámetro provinciaQueRepresenta define la Provincia a la que representa el Legislador
* @param idLegislador El parámetro idLegislador define el Cod. Identificativo del Legislador
* @param antiguedad El parámetro antiguedad define los años de antiguedad del Legislador
*/
public Legislador_CU00695B () {
super();
provinciaQueRepresenta = "";
idLegislador = "";
antiguedad = 0;
} // Cierre del constructor 1
/**
* Constructor 2 del Profesor - Atribututos con asignación de Valores
* @param provinciaQueRepresenta El parámetro provinciaQueRepresenta define la Provincia a la que representa el Legislador
* @param idLegislador El parámetro idLegislador define el Cod. Identificativo del Legislador
* @param antiguedad El parámetro antiguedad define los años de antiguedad del Legislador
*/
public Legislador_CU00695B (String nombre, String apellidos, int edad, String provinciaQueRepresenta,String idLegislador, int antiguedad) {
super(nombre, apellidos, edad);
this.provinciaQueRepresenta = provinciaQueRepresenta;
this.idLegislador = idLegislador;
this.antiguedad = antiguedad;
} // Cierre del constructor 2
// METODOS ESPECIFICOS DE LA SUBLASE
/** Método para establecer la Provincia Que Representa el Legislador
* @param provinciaQueRepresenta El parámetro provinciaQueRepresenta define el valor que contendrá la Provincia Que Representa el Legislador
*/
public void setProvinciaQueRepresenta (String provinciaQueRepresenta) {this.provinciaQueRepresenta = provinciaQueRepresenta;}
/** Método para establecer el id del Legislador
* @param idLegislador El parámetro idLegislador define el valor que contendrá el Cod. Identificativo del Legislador
*/
public void setIdLegislador (String idLegislador) {this.idLegislador = idLegislador;}
/** Método para establecer la Antiguedad del Legislador
* @param antiguedad El parámetro antiguedad define el valor que contendrá la Antiguedad del Legislador
*/
public void setAntiguedad (int antiguedad) {this.antiguedad = antiguedad;}
/** Método para obtener la Provincia Que Representa el Legislador
* @return La provincia a la que representa el Legislador
*/
public String getProvinciaQueRepresenta() {return provinciaQueRepresenta;}
/** Método para obtener el id del Legislador
* @return El Código Identificativo del Legislador
*/
public String getIdLegislador() {return idLegislador;}
/** Método para obtener la Antiguedad del Legislador
* @return La antiguedad del Legislador
*/
public int getAntiguedad() {return antiguedad;}
/**
* Método Abstracto para la camara en la que trabaja el Legislador
*/
// Método abstracto (definido como abstract y sin cuerpo)
abstract public String getCamaraEnQueTrabaja();
/**
* Método para para obtener los datos del Legislador
* @return Los datos del Legislador
*/
public String toString () {
/* Se transforma antiguedad en un Integer para poder aplicarle el método toString().
* De otra manera no se puede hacer por ser antiguedad un tipo primitivo.*/
Integer datoAntiguedad = antiguedad;
// Se devuelve uns String con los datos de Persona + los de Legislador
return super.toString().concat(" con Cod. identificativo ").concat(idLegislador)
.concat(" y con ").concat(datoAntiguedad.toString().concat(" años representando a la Provincia de ").concat(provinciaQueRepresenta));
}// Cierre del método para obtener los datos del Profesor
} //Cierre de la clase
Subclase Diputado:
/**
* EJERCICIO DE HERENCIAS + CLASES Y MÉTODOS ABSTRACTOS.<br>
* Esta Clase define una Subclase que "bebe" de la Superclase Legislador_CU00695B.<br>
* Clase 3 del Ejercicio del Tema "CU00695B clases abstractas java metodos abstract class api ejemplo ejercicio".
* @author Lorenzo Fernández Asensio
* @version 20151209.01
*/
public class Diputado_CU00695B extends Legislador_CU00695B {
// No hay campos específicos de la subclase.
/**
* Constructor 1 del Diputado - Atribututos sin asignación de Valores
*/
public Diputado_CU00695B () {
super();
} // Cierre del constructor 1
/**
* Constructor 2 del Diputado - Atribututos con asignación de Valores
*/
public Diputado_CU00695B (String nombre, String apellidos, int edad, String provinciaQueRepresenta,String idLegislador, int antiguedad) {
super(nombre, apellidos, edad, provinciaQueRepresenta, idLegislador, antiguedad);
} // Cierre del constructor 2
/**
* Método Abstracto que redefine (obligatoriamente han de hacerlo) el método abstracto getCamaraEnQueTrabaja() de la superclase.
* @return En que Cámara trabaja el Diputado
*/
public String getCamaraEnQueTrabaja() { return " en la Cámara del Congreso.";} //Método abstracto sobreescrito en esta clase
/**
* Método para para obtener los datos del Diputado
* @return Los datos del Diputado
*/
public String toString () { // Sobreescritura del método
return super.toString().concat (getCamaraEnQueTrabaja());}
} //Cierre de la clase
Subclase Senador:
/**
* EJERCICIO DE HERENCIAS + CLASES Y MÉTODOS ABSTRACTOS.<br>
* Esta Clase define una Subclase que "bebe" de la Superclase Legislador_CU00695B.<br>
* Clase 4 del Ejercicio del Tema "CU00695B clases abstractas java metodos abstract class api ejemplo ejercicio".
* @author Lorenzo Fernández Asensio
* @version 20151209.01
*/
public class Senador_CU00695B extends Legislador_CU00695B {
// No hay campos específicos de la subclase.
/**
* Constructor 1 del Senador - Atribututos sin asignación de Valores
*/
public Senador_CU00695B () {
super();
} // Cierre del constructor 1
/**
* Constructor 2 del Senador - Atribututos con asignación de Valores
*/
public Senador_CU00695B (String nombre, String apellidos, int edad, String provinciaQueRepresenta,String idLegislador, int antiguedad) {
super(nombre, apellidos, edad, provinciaQueRepresenta, idLegislador, antiguedad);
} // Cierre del constructor 2
/**
* Método Abstracto que redefine (obligatoriamente han de hacerlo) el método abstracto getCamaraEnQueTrabaja() de la superclase.
* @return En que Cámara trabaja el Senador
*/
public String getCamaraEnQueTrabaja() { return " en la Cámara del Senado.";} //Método abstracto sobreescrito
/**
* Método para para obtener los datos del Senador
* @return Los datos del Senador
*/
public String toString () { // Sobreescritura del método
return super.toString().concat (getCamaraEnQueTrabaja());}
} //Cierre de la clase
Clase Lista Legisladores:
import java.util.ArrayList;
import java.util.Iterator;
/**
* EJERCICIO DE HERENCIAS + CLASES Y MÉTODOS ABSTRACTOS.<br>
* Esta Clase define una Subclase que "bebe" de las Superclases intermedias de tipos de Legisladores.<br>
* Clase 5 del Ejercicio del Tema "CU00695B clases abstractas java metodos abstract class api ejemplo ejercicio".
* @author Lorenzo Fernández Asensio
* @version 20151209.01
*/
public class ListaLegisladores_CU00695B {
// Inicialización de la Colección
private ArrayList <Legislador_CU00695B> listaLegisladores; //Campo de la clase
/**
* Constructor de la Colección Lista de Legisladores.
* @param listaLegisladores El parámetro listaLegisladores define la colección de la Lista de Legisladores
*/
public ListaLegisladores_CU00695B () {
// Creación de la Colección
listaLegisladores = new ArrayList <Legislador_CU00695B> ();
} // Cierre del Constructor
/**
* Método para añadir un legislador a la Colección
* @param legisladorNuevo El parámetro legisladorNuevo define el Legislador que se añade a la Colección
*/
public void addLegislador (Legislador_CU00695B legisladorNuevo) {
listaLegisladores.add(legisladorNuevo);
} // Cierre del método para añadir un legislador a la Colección
/**
* Método para mostrar por pantalla la Información usando un For Extendido
*/
public void imprimirListado() {
// Se limpia la pantalla de la Consola
System.out.println("\f");
// Se Muestra en pantalla un mensaje de Inicio
System.out.println ("En la actualidad, tenemos los siguientes Legisladores:");
// Se recorre la lista mostrando los datos
for (Legislador_CU00695B tmp: listaLegisladores) {
// Se realiza una llamada al método "toString" del objeto en curso
System.out.println (tmp.toString());
}
} //Cierre método imprimirListin
} //Cierre de la clase
Clase Test:
/**
* EJERCICIO DE HERENCIAS + CLASES Y MÉTODOS ABSTRACTOS.<br>
* Esta Clase define una clase test para probar Herencias y Clase & Métodos Abstractos.<br>
* Clase 6 del Ejercicio del Tema "CU00695B clases abstractas java metodos abstract class api ejemplo ejercicio".
* @author Lorenzo Fernández Asensio
* @version 20151209.01
*/
public class TestAbstractLegis_CU00695B {
public static void main (String [ ] Args) {
// Creación de varios Diputados
Diputado_CU00695B Diputado1 = new Diputado_CU00695B ("Adrian", "De las Heras Cortes", 57, "Barcelona", "BAR-35752", 7);
Diputado_CU00695B Diputado2 = new Diputado_CU00695B ("Celia", "Jimenez Ladrillo", 63, "Sevilla", "SEV-7841", 14);
Diputado_CU00695B Diputado3 = new Diputado_CU00695B ("Felix", "Garcia Trujillo", 58, "Badajoz", "BAD-459", 3);
// Creación de varios Senadores
Senador_CU00695B senador1 = new Senador_CU00695B ("Maria de la O", "Abellan Ruiz", 46, "Salamanca", "BSAL-4978", 1);
Senador_CU00695B senador2 = new Senador_CU00695B ("Ramón", "Guitarra Espada", 69, "Murcia", "MUR-1599", 8);
Senador_CU00695B senador3 = new Senador_CU00695B ("Margarita", "Sanchez Raspa", 51, "Huelva", "HUE-1994", 5);
// Creación de un objeto Lista de Legisladores
ListaLegisladores_CU00695B listaLegisladores = new ListaLegisladores_CU00695B ();
// Se Añaden a la lista los Diputados
listaLegisladores.addLegislador(Diputado1);
listaLegisladores.addLegislador(Diputado2);
listaLegisladores.addLegislador(Diputado3);
// Se Añaden al listin los Senadores
listaLegisladores.addLegislador(senador1);
listaLegisladores.addLegislador(senador2);
listaLegisladores.addLegislador(senador3);
// Se realiza llamada al método "imprimirListado" de la clase "listaLegisladores" para imprimirlo
listaLegisladores.imprimirListado();
} // Cierre del main
} // Cierre de la clase
Como siempre, espero vuestros comentarios.
Muchas Gracias,
Un Saludo,