Autor Tema: Qué es una interface Java para qué sirven y ejemplo de utilidad o uso CU00697B  (Leído 2032 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola Dejo el Ejercicio CU00697B del programa formativo en programación orientada a objetos. Para qué sirven las interfaces Java. Implementar una interfaz del API. 

Citar
EJERCICIO

Se plantea desarrollar un programa Java que permita representar la siguiente situación. Una instalación deportiva es un recinto delimitado donde se practican deportes, en Java interesa disponer de un método int getTipoDeInstalacion(). Un edificio es una construcción cubierta y en Java interesa disponer de un método double getSuperficieEdificio(). Un polideportivo es al mismo tiempo una instalación deportiva y un edificio; en Java interesa conocer la superficie que tiene y el nombre que tiene. Un edificio de oficinas es un edificio; en Java interesa conocer el número de oficinas que tiene.

Definir dos interfaces y una clase que implemente ambas interfaces para representar la situación anterior. En una clase test con el método main, crear un ArrayList que contenga tres polideportivos y dos edificios de oficinas y utilizando un iterator, recorrer la colección y mostrar los atributos de cada elemento. ¿Entre qué clases existe una relación que se asemeja a la herencia múltiple?
Solamente se da la situación de herencia múltiple en la Clase Polideportivo entre esta y las interfaces InstalacionDeportiva y Edificio

Codigo interface InstalacionDeportiva
Código: [Seleccionar]
public interface InstalacionDeportiva  {
   
   int getTipoDeInstalacion();
}

Codigo interface  Edificio
Código: [Seleccionar]
public interface Edificio
{
      double getSuperficieEdificio();
     
}


Codigo Clase Oficinas
Código: [Seleccionar]
public class Oficinas implements Edificio

{
    double superficie;
    int numeroOficinas;
     String separador = new String(new char[95]).replace("\0", "*")+"\n";
     
    //Constructores
    public Oficinas()
    {
        superficie=0;
        numeroOficinas=0;
    }

     public Oficinas(double superficie, int numeroOficinas)
    {
        this.superficie=superficie;
        this.numeroOficinas=numeroOficinas;
    }
    public double getSuperficieEdificio(){
        return superficie;
    }

    public int getNumeroOficinas(){
        return numeroOficinas;
    }
   
    public void setSuperficieEdificio(double superficie){
         this.superficie=superficie;
    }

    public void setNumeroOficinas(int numeroOficinas){
        this.numeroOficinas=numeroOficinas;
    }
     public String toString(){
    return "El edificio de oficinas tiene "+superficie+" m2."+
            " y un total de "+numeroOficinas+" oficinas\n"+separador ;
   
    }
}

Clase Polideportivo
Código: [Seleccionar]
public class Polideportivo implements InstalacionDeportiva,Edificio
{
    //Instancia de variables
    double superficie  ;
    int tipoInstalacion;
    String nombreInstalacion;
     String separador = new String(new char[95]).replace("\0", "*")+"\n";
    //Constructores
    public Polideportivo()
    {
        superficie =0 ;
        tipoInstalacion=0;
        nombreInstalacion=" ";
    }

    public Polideportivo(double superficie,int tipoInstalacion,String nombreInstalacion)
    {
        this.superficie=superficie;
        this.tipoInstalacion=tipoInstalacion;
        this.nombreInstalacion=nombreInstalacion;

    }

    public double getSuperficieEdificio(){
        return superficie;
    }

    public int getTipoDeInstalacion(){
        return tipoInstalacion;
    }

    public String getNombreIstalacion(){
        return nombreInstalacion;
    }

    public void setSuperficieEdificio(double superficie){
        this.superficie=superficie;
    }

    public void setTipoDeInstalacion(int tipoInstalacion){
         this.tipoInstalacion=tipoInstalacion;
    }

    public void setNombreIstalacion(String nombreInstalacion){
        this.nombreInstalacion=nombreInstalacion;
    }
   
    public String toString(){
    return "Polideportivo tipo: "+tipoInstalacion+
            "\nNombre: "+nombreInstalacion+
            "\nTiene una superficie de : "+superficie+"m2\n"+separador ;
   
    }
   
}

Codigo Clase   TestHerenciaMultipleInterface
Código: [Seleccionar]
import java.util.Iterator;
import java.util.ArrayList;
public class TestHerenciaMultipleInterface
{
    public static void main(String[] args)
    {
        ArrayList<Edificio> listaEdificios = new ArrayList<Edificio>();
        Edificio poli1= new Polideportivo(1100,1,"Akasvayu Girona- Palau Girona-Fontajau (5.040 espectadores) ");
        Edificio poli2= new Polideportivo(14900,2,"Pamesa Valencia-Pabellon Municipal Fuente San Luis (9.000 espectadores)");
        Edificio poli3= new Polideportivo(22000,3,"Unicaja Malaga-Pal. De Deportes Jose Ma Martin Carpena (10.233 espectadores) ");
       
        Edificio ofi1=new Oficinas(9.476,500);
        Edificio ofi2=new Oficinas(3200,200);
       
       
        listaEdificios.add(poli1);
        listaEdificios.add(poli2);
        listaEdificios.add(poli3);
        listaEdificios.add(ofi1);
        listaEdificios.add(ofi2);
       
        Iterator<Edificio> edif = listaEdificios.iterator();
        Edificio temp ;
        while(edif.hasNext()){
            temp=edif.next();
            System.out.println(temp.toString());
        }
    }

}


Gracias ;)
« Última modificación: 15 de Agosto 2019, 17:19 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas, para quien revise este ejercicio, las respuestas son correctas. Sobre la situación semejante a la herencia múltiple, pueden verse algunos comentarios en este hilo: https://aprenderaprogramar.com/foros/index.php?topic=2965.0

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".