Dejo planteada mi solución, al tema CU00695B del manual de programación Java desde cero con ejercicios resueltos.
package claseCU00695B;
public class Persona { // Código de la clase Persona ejemplo aprenderaprogramar.com
private String nombre;
private String apellidos;
private int edad;
public Persona() {
nombre = "";
apellidos = "";
edad = 0;
}
public Persona(String nombre, String apellidos, int edad) {
this.nombre = nombre;
this.apellidos = apellidos;
this.edad = edad;
}
public String getNombre() {
return nombre;
}
public String getApellidos() {
return apellidos;
}
public int getEdad() {
return edad;
}
public String toString() {
Integer datoEdad = edad;
return "-Nombre: ".concat(nombre).concat(" -Apellidos: ").concat(apellidos).concat(" -Edad: ")
.concat(datoEdad.toString());
}
} // Cierre de la clase
package claseCU00695B;
public abstract class Legislador extends Persona {
private String provinciaQueRepresenta;
protected String camaraEnQueTrabaja;
public Legislador(String pProvinciaQueRepresenta, String pCamaraEnQueTrabaja) {
setProvinciaQueRepresenta(pProvinciaQueRepresenta);
setCamaraEnQueTrabaja(pCamaraEnQueTrabaja);
}
public Legislador(String nombre, String apellidos, int edad, String pProvinciaQueRepresenta, String pCamaraEnQueTrabaja) {
super(nombre, apellidos, edad);
setProvinciaQueRepresenta(pProvinciaQueRepresenta);
setCamaraEnQueTrabaja(pCamaraEnQueTrabaja);
}
public String getProvinciaQueRepresenta() {
return provinciaQueRepresenta;
}
public void setProvinciaQueRepresenta(String provinciaQueRepresenta) {
this.provinciaQueRepresenta = provinciaQueRepresenta;
}
public void setCamaraEnQueTrabaja(String camaraEnQueTrabaja) {
this.camaraEnQueTrabaja = camaraEnQueTrabaja;
}
public abstract String getCamaraEnQueTrabaja();
public String toString() {
return super.toString().concat(" Representa a la provincia: ").concat(getProvinciaQueRepresenta());
}
}
package claseCU00695B;
public class Diputado extends Legislador {
public Diputado(String pProvinciaQueRepresenta, String pCamaraEnQueTrabaja) {
super(pProvinciaQueRepresenta, pCamaraEnQueTrabaja);
}
public Diputado(String nombre, String apellidos, int edad, String pProvinciaQueRepresenta, String pCamaraEnQueTrabaja) {
super(nombre, apellidos, edad, pProvinciaQueRepresenta, pCamaraEnQueTrabaja);
}
@Override
public String getCamaraEnQueTrabaja() {
return camaraEnQueTrabaja;
}
public String toString() {
return super.toString().concat(" Trabaja en la camara: ").concat(getCamaraEnQueTrabaja());
}
}
package claseCU00695B;
public class Senador extends Legislador {
public Senador(String pProvinciaQueRepresenta, String pCamaraEnQueTrabaja) {
super(pProvinciaQueRepresenta, pCamaraEnQueTrabaja);
}
public Senador(String nombre, String apellidos, int edad, String pProvinciaQueRepresenta,
String pCamaraEnQueTrabaja) {
super(nombre, apellidos, edad, pProvinciaQueRepresenta, pCamaraEnQueTrabaja);
}
@Override
public String getCamaraEnQueTrabaja() {
return camaraEnQueTrabaja;
}
public String toString() {
return super.toString().concat(" Trabaja en la camara: ").concat(getCamaraEnQueTrabaja());
}
}
package claseCU00695B;
import java.util.ArrayList;
public class ListinLegisladores {
private ArrayList<Legislador> listinLegisladores;
public ListinLegisladores() {
listinLegisladores = new ArrayList<Legislador>();
} // Constructor
public void addLegislador(Legislador pLegislador) {
listinLegisladores.add(pLegislador);
} // Método
public void imprimirListin() {
String tmpStr1;
System.out.println("Se muestra el listado de los legisladores existentes: ");
for (Legislador legislador : listinLegisladores) {
System.out.println(legislador.toString());
if(legislador instanceof Diputado) {
tmpStr1 = "Diputado";
} else {
tmpStr1 = "Senador";
}
System.out.println("-Tipo de Legislador " + tmpStr1.concat(" Trabaja en la camara ").concat(legislador.camaraEnQueTrabaja));
}
}
}
package claseCU00695B;
public class TestLegisladores {
public static void main(String[] args) {
String provinciaQueRepresenta;
String camaraEnQueTrabaja;
//Variables que uso para simplificar el ingreso de datos
provinciaQueRepresenta = "Pichincha";
camaraEnQueTrabaja = "Cultura";
Legislador d1 = new Diputado("José", "Hernández López", 45, provinciaQueRepresenta, camaraEnQueTrabaja);
Legislador d2 = new Diputado("Andrés", "Moltó Parra", 87, provinciaQueRepresenta, camaraEnQueTrabaja);
Legislador d3 = new Diputado("José", "Ríos Mesa", 76, provinciaQueRepresenta, camaraEnQueTrabaja);
Legislador s1 = new Senador("Juan", "Pérez Pérez", 49, provinciaQueRepresenta, camaraEnQueTrabaja);
Legislador s2 = new Senador("Alberto", "Centa Mota", 49, provinciaQueRepresenta, camaraEnQueTrabaja);
Legislador s3 = new Senador("Alberto", "Centa Mota", 49, provinciaQueRepresenta, camaraEnQueTrabaja);
ListinLegisladores listaLegisladores = new ListinLegisladores();
listaLegisladores.addLegislador(s3);
listaLegisladores.addLegislador(s2);
listaLegisladores.addLegislador(s1);
listaLegisladores.addLegislador(d3);
listaLegisladores.addLegislador(d1);
listaLegisladores.addLegislador(d2);
listaLegisladores.imprimirListin();
}
}