Buenas noches aquí les dejo mi ejercicio CU00695B del curso de fundamentos de programación orientada a objetos con Java:
Clase Legislador:
package aprenderaprogramar.java.iniciacion.clase95;
import java.util.Calendar;
public abstract class Legislador {
protected String nombre;
private String provinciaQueRepresenta;
protected String camaraEnQueTrabaja;
private Calendar fechaInicioMandato;
// Constructors
Legislador(){nombre = ""; provinciaQueRepresenta = ""; camaraEnQueTrabaja = ""; fechaInicioMandato = null; }
Legislador(String nombre,String provinciaQueRepresenta,String camaraEnQueTrabaja,Calendar fechaInicioMandato){
this.nombre = nombre;
this.provinciaQueRepresenta = provinciaQueRepresenta;
this.camaraEnQueTrabaja = camaraEnQueTrabaja;
this.fechaInicioMandato = fechaInicioMandato; }
// methods
public abstract String getNombre() ;
public abstract void setNombre(String nombre);
public abstract String getCamaraEnQueTrabaja();
public abstract void setCamaraEnQueTrabaja(String camaraEnQueTrabaja);
public String getProvinciaQueRepresenta() { return provinciaQueRepresenta; }
public void setProvinciaQueRepresenta(String provinciaQueRepresenta) { this.provinciaQueRepresenta = provinciaQueRepresenta;}
public Calendar getFechaInicioMandato() { return fechaInicioMandato; }
public void setFechaInicioMandato(Calendar fechaInicioMandato) { this.fechaInicioMandato = fechaInicioMandato; }
public String toString(){
return "\n Nombre : "+nombre+" Provincia que Representa :"+provinciaQueRepresenta+
"\n Camara en que Trabaja : "+camaraEnQueTrabaja+"\n Fecha Inicio Mandato : "+fechaInicioMandato.getTime();
}// end toString method
}// end class
Clase Diputado:
package aprenderaprogramar.java.iniciacion.clase95;
import java.util.Calendar;
public class Diputado extends Legislador{
// Constructor
Diputado(){ super(); }
Diputado(String nombre,String provinciaQueRepresenta,String camaraEnQueTrabaja,Calendar fechaInicioMandato){
super(nombre,provinciaQueRepresenta,camaraEnQueTrabaja,fechaInicioMandato); }
// métodos implementados de la clase abstracta Legislador
public String getNombre(){ return nombre; }
public void setNombre(String nombre){ super.nombre = nombre;}
public String getCamaraEnQueTrabaja(){ return camaraEnQueTrabaja;}
public void setCamaraEnQueTrabaja(String camaraEnQueTrabaja){ super.camaraEnQueTrabaja = camaraEnQueTrabaja; }
// métodos propios
// sobreescritura de toString()
public String toString(){ return super.toString(); }
}// end class
Clase Senador:
package aprenderaprogramar.java.iniciacion.clase95;
import java.util.Calendar;
public class Senador extends Legislador{
// Constructores
Senador(){ super(); }
Senador(String nombre,String provinciaQueRepresenta,String camaraEnQueTrabaja,Calendar fechaInicioMandato){
super(nombre,provinciaQueRepresenta,camaraEnQueTrabaja,fechaInicioMandato); }
// métodos implementados de la clase abstracta Legislador
public String getNombre(){ return nombre; }
public void setNombre(String nombre){ super.nombre = nombre;}
public String getCamaraEnQueTrabaja(){ return camaraEnQueTrabaja;}
public void setCamaraEnQueTrabaja(String camaraEnQueTrabaja){ super.camaraEnQueTrabaja = camaraEnQueTrabaja; }
// métodos propios
// sobreescritura de toString()
public String toString(){ return super.toString(); }
}// fin de clase
Clase ListaDeLegisladores:
package aprenderaprogramar.java.iniciacion.clase95;
import java.util.ArrayList;
public class ListaDeLegisladores {
private ArrayList<Legislador> listaLegisladores;
// constructors
ListaDeLegisladores(){ listaLegisladores = new ArrayList <Legislador>(); }
// methods
public void añadirLegislador(Legislador legislador){ listaLegisladores.add(legislador); } // añade un legislador a la lista
public void borrarLegislador(Legislador legislador){ listaLegisladores.remove(legislador); }// borra un legislador
public void borrarLegislador(int posicion){ listaLegisladores.remove(posicion); }// borra un legislador en una posición de la lista
public int buscaLegislador(Legislador legislador){ return listaLegisladores.indexOf(legislador); }//busca un legislador en la lista
public void listadoLegisladores(){ // método que lista todos los legisladores del listin
System.out.println("LISTADO TOTAL LEGISLADORES \n");
for(Legislador tmp: listaLegisladores){
//System.out.println(tmp.getCamaraEnQueTrabaja()+"\n");
String tipolegislador;
if(tmp instanceof Diputado) tipolegislador = "Objeto Diputado:"; else tipolegislador = "Objeto Senador:";
System.out.println(tipolegislador+tmp.toString());
}// end for
}// end listadoProfesores method
public void listadoPorCamara(){ // mñétodo que lista por Cámara
System.out.println("LISTADO DE LEGISLADORES POR CAMARA\n");
for(Legislador tmp: listaLegisladores){
String tipolegislador;
if(tmp instanceof Diputado) tipolegislador = "Objeto Diputado:"; else tipolegislador = "Objeto Senador:";
System.out.println(tipolegislador+" "+tmp.getNombre()+" - "+tmp.getCamaraEnQueTrabaja()+"\n");
}// end for
}// end listadoPorCamara method
} //end class
Clase TestLegisladores:
package aprenderaprogramar.java.iniciacion.clase95;
import java.util.Calendar;
public class TestLegisladores {
public static void main(String[] args) {
// creo 3 Diputados y 3 Senadores
Calendar fecha1 = Calendar.getInstance();
fecha1.set(2016, 11, 1);
Legislador diputado1 = new Diputado("José Rodríguez","Tenerife","Congreso",fecha1);
Calendar fecha2 = Calendar.getInstance();
fecha2.set(2016, 11, 2);
Legislador diputado2 = new Diputado("Francisco La Leche","Gran Canaria","Congreso",fecha2);
Calendar fecha3 = Calendar.getInstance();
fecha3.set(2016, 11, 3);
Legislador diputado3 = new Diputado("Juan Rapadura","La Palma","Congreso",fecha3);
Calendar fecha4 = Calendar.getInstance();
fecha4.set(2016, 11, 4);
Legislador senador1 = new Senador("Ana Bellavista","Tenerife","Senado",fecha4);
Calendar fecha5 = Calendar.getInstance();
fecha5.set(2016, 11, 5);
Legislador senador2 = new Senador("Luis Timanfaya","Lanzarote","Senado",fecha5);
Calendar fecha6 = Calendar.getInstance();
fecha6.set(2016, 11, 6);
Legislador senador3 = new Senador("Sebastián Chipude","La Gomera","Senado",fecha6);
// creo la lista y agrego los legisladores
ListaDeLegisladores lista = new ListaDeLegisladores();
lista.añadirLegislador(diputado1);lista.añadirLegislador(diputado2);lista.añadirLegislador(diputado3);
lista.añadirLegislador(senador1);lista.añadirLegislador(senador2);lista.añadirLegislador(senador3);
// listo los legisladores por la cámara en que trabajan
lista.listadoPorCamara();
// si quiero todos los datos
lista.listadoLegisladores();
}// end main method
}// end class
Agradeceré sus correcciones o sugerencias.