Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: @mayakoski en 10 de Noviembre 2019, 17:53
-
Hola buenos días, dejo planteada mi propuesta de solución al ejercicio CU00697B del curso elemental de programación Java desde cero de aprenderaprogramar.
Interface Instalacion_Deportiva
package claseCU00697B;
public interface Instalacion_Deportiva {
public int getTipoDeInstalacion();
}
Interface Edificio
package claseCU00697B;
public interface Edificio {
public double getSuperficieEdificio();
public int getNumeroDeOficinas();
}
Clase Construccion
package claseCU00697B;
public class Construccion implements Instalacion_Deportiva, Edificio{
private int tipoInstalacion;
private String nombreInstalacion;
private double superficieEdificio;
private int numeroDeOficinas;
//Constructor para Polideportivos
public Construccion(int pTipoInstalcion, double pSuperficieEdificio, String pNombreInstalacion) {
this.tipoInstalacion = pTipoInstalcion;
this.superficieEdificio = pSuperficieEdificio;
this.nombreInstalacion = pNombreInstalacion;
}
//Constructor para edificios
public Construccion(int pTipoInstalcion, double pSuperficieEdificio, String pNombreInstalacion, int pNumeroDeOficinas) {
this.tipoInstalacion = pTipoInstalcion;
this.superficieEdificio = pSuperficieEdificio;
this.nombreInstalacion = pNombreInstalacion;
this.numeroDeOficinas = pNumeroDeOficinas;
}
public int getTipoDeInstalacion() {
return this.tipoInstalacion;
};
public String getNombreInstalacion() {
return this.nombreInstalacion;
};
public double getSuperficieEdificio() {
return this.superficieEdificio;
}
public int getNumeroDeOficinas() {
return this.numeroDeOficinas;
}
}
Clase TestConstruccion
package claseCU00697B;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TestConstruccion {
public static void main(String[] args) {
List<Construccion> listaEdificios;
listaEdificios = new ArrayList<Construccion>();
listaEdificios.add(new Construccion(1,320.5,"Coliseo Balonescto"));
listaEdificios.add(new Construccion(1,500,"Piscina Olimpica"));
listaEdificios.add(new Construccion(1, 435, "Coliseo Bolleyball"));
listaEdificios.add(new Construccion(2, 800, "Administracion", 16));
listaEdificios.add(new Construccion(2, 500, "Capacitacion", 10));
Iterator<Construccion> it = listaEdificios.iterator();
Construccion tmpConstruccion;
while(it.hasNext()){
tmpConstruccion = it.next();
System.out.println("Analizando construcción: ");
if(tmpConstruccion.getTipoDeInstalacion() == 1) {
System.out.print("Polideportivo ");
}else {
System.out.print("Edificio de " + tmpConstruccion.getNumeroDeOficinas() + " Oficinas, ");
}
System.out.println("Tiene una superficio de " + tmpConstruccion.getSuperficieEdificio() + "y se identifica como " + tmpConstruccion.getNombreInstalacion());
}
}
}
-
Hola, observaciones:
1) Se define dentro de la interface Edificio el método public int getNumeroDeOficinas(); Esto puede ser una opción, pero no se ajusta bien si pensamos que hay edificios que quizás no tengan oficinas, por ejemplo un edificio de viviendas.
2) Se propone una clase Construccion, pero esto no se atiene bien al enunciado del ejercicio, donde se hablaba de Polideportivos.
Puede verse una solución correcta a este ejercicio en https://aprenderaprogramar.com/foros/index.php?topic=2965.0
Saludos
-
Hola Buenas tardes.
He revisado la solución planteada como correcta, pero igual no cumple el enunciado del ejercicio en el cual indica que se cree una clase que implemente las dos interfaces, para lo cual en la solución genera dos clases que implementas las dos interfaces, por esta razón en mi respuesta trato de hacer lo indicado.
Con respecto a las observaciones dadas mi código si tiene las falencias indicadas y he tratado de corregirlas en base a mi interpretación de enunciado, y las dejo a continuación.
El uso de la clase construcción pretende incluir cualquier tipo de edificación sea esta un edificio, un polideportivo que son materia de este ejercicio, por lo cual he usado en mi nueva solución la clase como edificación
Saludos y gracias por el tiempo brindado
package claseCU00697B_2;
public interface Edificio {
public double getSuperficieEdificio();
}
package claseCU00697B_2;
public interface InstalacionDeportiva {
int getTipoDeInstalacion();
}
package claseCU00697B_2;
public class Edificacion implements Edificio, InstalacionDeportiva {
private int tipoInstalacion;
private double superficieEdificio;
private String nombreInstalacion;
private int numeroDeOficinas;
//Constructor para Instalaciones Deportivas
public Edificacion(int pTipoInstalcion, double pSuperficieEdificio, String pNombreInstalacion) {
this.tipoInstalacion = pTipoInstalcion;
this.superficieEdificio = pSuperficieEdificio;
this.nombreInstalacion = pNombreInstalacion;
}
//Constructor para Edificio de Oficinas
public Edificacion(double pSuperficieEdificio, int pNumeroDeOficinas, String pNombreInstalacion) {
this.superficieEdificio = pSuperficieEdificio;
this.nombreInstalacion = pNombreInstalacion;
this.numeroDeOficinas = pNumeroDeOficinas;
}
public String getNombreInstalacion() {
return this.nombreInstalacion;
};
public int getNumeroDeOficinas() {
return this.numeroDeOficinas;
}
@Override
public int getTipoDeInstalacion() {
// TODO Auto-generated method stub
return this.tipoInstalacion;
}
@Override
public double getSuperficieEdificio() {
// TODO Auto-generated method stub
return this.superficieEdificio;
}
}
package claseCU00697B_2;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TestEdificacion {
public static void main(String[] args) {
List<Edificacion> listaEdificios;
listaEdificios = new ArrayList<Edificacion>();
listaEdificios.add(new Edificacion(1,320.5,"Coliseo Baloncesto"));
listaEdificios.add(new Edificacion(2,500.0,"Piscina Olimpica"));
listaEdificios.add(new Edificacion(3, 435.0, "Polideportivo"));
listaEdificios.add(new Edificacion(800.0, 8, "Edificio de Oficinas"));
listaEdificios.add(new Edificacion(500.0,15, "Capacitacion"));
listaEdificios.add(new Edificacion(350.0, 0, "Residencias"));
Iterator<Edificacion> it = listaEdificios.iterator();
Edificacion tmpEdificacion;
while(it.hasNext()){
tmpEdificacion = it.next();
System.out.println("Analizando edificación: ");
if(tmpEdificacion.getTipoDeInstalacion() != 0) {
System.out.print("Instalacion Deportiva ");
}else {
System.out.print("Edificio de " + tmpEdificacion.getNumeroDeOficinas() + " Oficinas, ");
}
System.out.println("Tiene una superficio de " + tmpEdificacion.getSuperficieEdificio() + " m2 y se identifica como " + tmpEdificacion.getNombreInstalacion());
}
}
}
-
Hola, para quien revise este hilo, comentar que la solución propuesta sigue sin atenerse a lo que pedía el ejercicio, ya que no se define la clase Polideportivo. Para quien esté interesado, ver el hilo comentado anteriormente. Saludos.