1
Aprender a programar desde cero / Ejemplo clases y métodos abstractos en Java. (CU00695B) Ejercicio resuelto
« en: 04 de Agosto 2015, 14:35 »
Hola! Dejo mi código para el ejercicio CU00695B.
Gracias!!
Citar
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.
Código: [Seleccionar]
public class Persona {
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() ); }
}
Código: [Seleccionar]
public abstract class Legislador extends Persona {
private String provinciaQueRepresenta;
public Legislador (String nombre, String apellidos, int edad, String provinciaQueRepresenta){
super(nombre, apellidos, edad);
this.provinciaQueRepresenta=provinciaQueRepresenta;
}
public String getProvinciaQueRepresenta() {return provinciaQueRepresenta;}
public String toString () {
return super.toString().concat("\nProvincia que representa: ").concat(provinciaQueRepresenta);
}
abstract public String getCamaraEnQueTrabaja();
}
Código: [Seleccionar]
public class Diputado extends Legislador{
private String camaraEnQueTrabaja;
public Diputado(String nombre, String apellidos, int edad, String provinciaQueRepresenta,
String camaraEnQueTrabaja){
super(nombre, apellidos, edad, provinciaQueRepresenta);
this.camaraEnQueTrabaja=camaraEnQueTrabaja;
}
public String getCamaraEnQueTrabaja() {
return camaraEnQueTrabaja;
}
public String toString() {
return super.toString().concat("\nCamara en que trabaja: ").concat(camaraEnQueTrabaja);
}
}
Código: [Seleccionar]
public class Senador extends Legislador{
private String camaraEnQueTrabaja;
public Senador (String nombre, String apellidos, int edad, String provinciaQueRepresenta,
String camaraEnQueTrabaja){
super(nombre, apellidos, edad, provinciaQueRepresenta);
this.camaraEnQueTrabaja=camaraEnQueTrabaja;
}
public String getCamaraEnQueTrabaja() {
return camaraEnQueTrabaja;
}
public String toString() {
return super.toString().concat("\nCamara en que trabaja: ").concat(camaraEnQueTrabaja);
}
}
Código: [Seleccionar]
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
public class Listador {
private List<Persona> lista;
private Iterator<Persona> iterador;
public Listador() {
lista = new ArrayList<Persona>();
}
public void add (Persona persona) {
lista.add(persona);
}
public void mostrarLista() {
iterador = lista.iterator();
String tmp = "";
Persona tmpPersona;
while(iterador.hasNext()){
tmpPersona=iterador.next();
if(tmpPersona instanceof Diputado){
tmp = "Diputado";
}else tmp = "Senador";
System.out.println("Listando datos del "+tmp+" :\n"+tmpPersona.toString());
}
}
}
Código: [Seleccionar]
public class Test {
public static void main (String[] args) {
Listador lista = new Listador();
lista.add(new Diputado ("Jose", "Gomez" , 40, "Rio Negro", "Camara alta"));
lista.add(new Diputado ("Alberto", "Perez", 39, "Neuquen", "Camara baja"));
lista.add(new Diputado ("Enrique", "Lopez", 45, "Salta", "Camara alta"));
lista.add(new Senador ("Alberto", "Esteves", 51, "Mendoza", "Camara alta"));
lista.add(new Senador ("Roberto", "Gomez", 55, "Jujuy", "Camara baja"));
lista.add(new Senador ("Ricardo", "Bargas", 52, "Santa Fe", "Camara baja"));
lista.mostrarLista();
}
}
Gracias!!