Hola a todos !! Paso a dejar el código del ejercicio CU00695B del tutorial de programación Java e pdf. Desde ya muchas gracias. Saludos
Luis
EJERCICIO
Declara una clase abstracta Legislador que herede de la clase Persona, con un atributo provinciaQueRepresenta (tipo String) y otros atributos. Declara un método abstracto getCamaraEnQueTrabaja. Crea dos clases concretas que hereden de Legislador: la clase Diputado y la clase Senador que sobreescriban los métodos abstractos necesarios. Crea una lista de legisladores y muestra por pantalla la cámara en que trabajan haciendo uso del polimorfismo.
Clase Test -main-
public class Test {
public static void main (String [ ] Args) {
Diputado d1 = new Diputado("José Pablo", "Hernández López", 45, "Provincia del Norte", 125.30f, "Partido Liberal");
Diputado d2 = new Diputado("Andrés Hugo", "Moltó Parra", 67, "Provincia del Sur", 134.25f, "Partido Socialista");
Diputado d3 = new Diputado ("José Luis", "Ríos Mesa", 56, "Provincia del Centro", 99.87f, "Partido Democrata");
Senador s1 = new Senador ("Juan José", "Pérez", 40, "Provincia del Oeste", 102.42f, "Asuntos Constitucionales");
Senador s2 = new Senador ("Alberto Raúl", "Centa", 49, "Provincia del Este",112.20f, "Presupuesto y Hacienda");
Senador s3 = new Senador ("Roberto José", "Mota", 44, "Provincia del Centro", 111.20f, "Educacion");
ListinLegisladores listinLegislador = new ListinLegisladores ();
listinLegislador.addLegislador (d1);
listinLegislador.addLegislador (d2);
listinLegislador.addLegislador (d3);
listinLegislador.addLegislador (s1);
listinLegislador.addLegislador (s2);
listinLegislador.addLegislador (s3);
listinLegislador.imprimirListin();
System.out.println ("El importe de las dietas del Congreso que consta en el listín es " +
listinLegislador.importeTotalDietaLegislador()+ " pesos");
} } //Cierre del main y cierre de la clase
Clase Persona
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 "Nombres: ".concat(nombre).concat(" - Apellidos: ").concat(apellidos).concat(" - Edad: ").concat(datoEdad.toString() ); }
} //Cierre de la clase
Clase abstracta Legislador
public abstract class Legislador extends Persona {
String provinciaQueRepresenta;
float dieta=0;
public Legislador () { super();
provinciaQueRepresenta = ""; }
public Legislador (String nombre, String apellidos, int edad, String provinciaQueRepresenta, float dieta ) {
super(nombre, apellidos, edad);
this.dieta=dieta;
this.provinciaQueRepresenta = provinciaQueRepresenta; }
// Métodos
public void setProvinciaQueRepresenta (String provinciaQueRepresenta) {
this.provinciaQueRepresenta = provinciaQueRepresenta; }
public String getProvinciaQueRepresenta () { return provinciaQueRepresenta; }
public float getDieta () { return dieta; }
public String toString () { return super.toString().concat(" - Provincia: ").concat(provinciaQueRepresenta).concat(" - Dieta(unid): ").concat(String.valueOf(dieta)); }
abstract public String getCamaraEnQueTrabaja(); // Método abstracto
abstract public float dietaLegislador (); // Método abstracto
abstract public String datosLegislador(); // Método abstracto
} //Cierre de la clase
Clase Diputado
public class Diputado extends Legislador {
String bloquePolitico = "";
String camaraLegislativa = "Cámara de Diputados";
// Constructor ejemplo aprenderaprogramar.com
public Diputado(String nombre, String apellidos, int edad, String provinciaQueRepresenta, float dieta, String bloquePolitico) {
super(nombre, apellidos, edad, provinciaQueRepresenta, dieta);
this.bloquePolitico = bloquePolitico;}
public String getBloquePolitico(){ return bloquePolitico;}
public String getCamaraEnQueTrabaja(){ return camaraLegislativa;}
public float dietaLegislador () { return TipoDeLegislador.DIPUTADO.getDietaBasica() * dieta; } //Método abstracto sobreescrito en esta clase
public String datosLegislador() { return bloquePolitico;}
} //Cierre de la clase
Clase Senador
public class Senador extends Legislador {
String comisionParlamentaria="";
String camaraLegislativa = "Cámara de Senadores";
// Constructores
public Senador (String nombre, String apellidos, int edad, String provinciaQueRepresenta, float dieta, String comisionParlamentaria) {
super(nombre, apellidos, edad, provinciaQueRepresenta, dieta);
this.comisionParlamentaria=comisionParlamentaria;}
public String getComisionParlamentaria(){ return comisionParlamentaria;}
public String getCamaraEnQueTrabaja(){ return camaraLegislativa;}
public float dietaLegislador () { return TipoDeLegislador.SENADOR.getDietaBasica() * dieta ; } //Método abstracto sobreescrito en esta clase
public String datosLegislador() { return comisionParlamentaria;}
} //Cierre de la clase
Clase ListinLegisladores
import java.util.ArrayList; import java.util.Iterator;
public class ListinLegisladores {
private ArrayList <Legislador> listinLegisladores; //Campo de la clase
public ListinLegisladores () { listinLegisladores = new ArrayList <Legislador> (); } //Constructor
public void addLegislador (Legislador legislador) { listinLegisladores.add(legislador); } //Método
public void imprimirListin() { //Método
String tmpStr1 = ""; //String temporal que usamos como auxiliar
String tmpStr2 = ""; //String temporal que usamos como auxiliar
System.out.println ("Se procede a mostrar los datos de los Legisladores existentes en el listín \n");
for (Legislador tmp: listinLegisladores) { System.out.println (tmp.toString () );
if (tmp instanceof Diputado) { tmpStr1 = "Diputado"; tmpStr2="Bloque Politico: ";} else { tmpStr1 = "Senador"; tmpStr2="Comision Parlamentaria: "; }
System.out.println("Lugar de Trabajo :"+(tmp.getCamaraEnQueTrabaja())+" - "+tmpStr2+(tmp.datosLegislador())+" - Tipo de legislador: "+tmpStr1+" - Dieta del legislador: "+(tmp.dietaLegislador())+"\n");}
} //Cierre método imprimirListin
public float importeTotalDietaLegislador() {
float importeTotal = 0f; //Variable temporal que usamos como auxiliar
Iterator<Legislador> it = listinLegisladores.iterator();
while (it.hasNext() ) { importeTotal = importeTotal + it.next().dietaLegislador(); }
return importeTotal;
} //Cierre del método importeTotalNominaProfesorado
} //Cierre de la clase ejemplo aprenderaprogramar.com
y mi infaltable clase enum

/**
* Enumeration class DietaBasica - write a description of the enum class here
*
* @author (your name here)
* @version (version number or date here)
*/
public enum TipoDeLegislador
{
DIPUTADO(30f), SENADOR(40f);
private final float dietaBasica;
TipoDeLegislador(float dietaBasica){
this.dietaBasica=dietaBasica;
}
public float getDietaBasica(){
return dietaBasica;
}
}