1
Aprender a programar desde cero / Ejercicio CU00697B para que sirven interfaces java implementar api ventaja ejemp
« en: 12 de Diciembre 2015, 19:52 »
Hola,
Aquí dejo mi ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo" para su corrección:
Clase InstalacionDeportiva:
Clase Edificio:
Clase Polideportivo:
Clase EdificioDeOficinas:
Clase Test:
Y la Respuesta a la Pregunta:
Espero vuestros comentarios,
Muchas Gracias,
Saludos,
Aquí dejo mi ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo" para su corrección:
Clase InstalacionDeportiva:
Código: [Seleccionar]
/**
* EJERCICIO DE HERENCIAS Y CLASES INTERFACES.<br>
* Esta Clase define una clase Interface de la que "beberan" otras clases.<br>
* Clase 1 del Ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo".
* @author Lorenzo Fernández Asensio
* @version 20151211.01
*/
public interface InstalacionDeportiva_CU00697B {
// No hay Atributos
/**
* Método (Por defecto abstract public) para obtener el Tipo de Instalación es
*/
int getTipoDeInstalacion();
} //Cierre de la interface
Clase Edificio:
Código: [Seleccionar]
/**
* EJERCICIO DE HERENCIAS Y CLASES INTERFACES.<br>
* Esta Clase define una clase Interface de la que "beberan" otras clases.<br>
* Clase 2 del Ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo".
* @author Lorenzo Fernández Asensio
* @version 20151211.01
*/
public interface Edificio_CU00697B {
// No hay Atributos
/**
* Método (Por defecto abstract public) para obtener la Superficie del Edificio
*/
double getSuperficieEdificio();
} //Cierre de la interface
Clase Polideportivo:
Código: [Seleccionar]
/**
* EJERCICIO DE HERENCIAS Y CLASES INTERFACES.<br>
* Esta Clase define una Subclase que implementa las interfaces InstalacionDeportiva_CU00697B y Edificio_CU00697B.<br>
* Clase 3 del Ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo".
* @author Lorenzo Fernández Asensio
* @version 20151212.01
*/
public class Polideportivo_CU00697B implements InstalacionDeportiva_CU00697B, Edificio_CU00697B {
// Inicialización de Atributos
private String nombre;
private double superficie;
private int tipoInstalacion;
/**
* Constructor 1 del Polideportivo - Atribututos solo con asignación del Valor del Tipo de Instalación
* @param nombre El parámetro nombre define el Nombre del Polideportivo
* @param superficie El parámetro superficie define la Superficie del Polideportivo
* @param tipoInstalacion El parámetro tipoInstalacion define Polideportivo como Tipo de Instalación 1
*/
public Polideportivo_CU00697B () {
nombre = "";
superficie = 0;
tipoInstalacion = 1; // Polideportivo es un Tipo de Instalación 1
} // Cierre del Constructor 1
/**
* Constructor 2 del Polideportivo - Atribututos con asignación de Valores
* @param nombre El parámetro nombre define el Nombre del Polideportivo
* @param superficie El parámetro superficie define la Superficie del Polideportivo
* @param tipoInstalacion El parámetro tipoInstalacion define Polideportivo como Tipo de Instalación 1
*/
public Polideportivo_CU00697B (String nombre, double superficie) {
this.nombre = nombre;
this.superficie = superficie;
tipoInstalacion = 1; // Polideportivo es un Tipo de Instalación 1
} // Cierre del Constructor 2
/**
* Método para establecer el Nombre del Polideportivo
* @param nombre El parámetro nombre define el Nombre del Polideportivo
*/
public void setNombre (String nombre) {
this.nombre = nombre;
} // Cierre del método para establecer el Nombre del Polideportivo
/**
* Método para establecer la Superficie del Polideportivo
* @param superficie El parámetro superficie define la Superficie del Polideportivo
*/
public void setSuperficie (double superficie) {
this.superficie = superficie;
} // Cierre del método para establecer la Superficie del Polideportivo
/**
* Método para obtener el Nombre del Polideportivo
* @return El Nombre del Polideportivo
*/
public String getNombre() {
return nombre;
} // Cierre del método para ver que Tipo de Instalación es
/**
* Método para obtener la Superficie del Polideportivo (Sobreescrito de la interface Edificio)
* @return La Superficie del Edificio
*/
public double getSuperficieEdificio() {
return superficie;
} // Cierre del método para ver que Tipo de Instalación es
/**
* Método para obtener el Tipo de Instalación es el Polideportivo (Sobreescrito de la interface InstalacionDeportiva)
* @return El Tipo de Instalación que es
*/
public int getTipoDeInstalacion() {
return tipoInstalacion;
} // Cierre del método para ver que Tipo de Instalación es
/**
* Método para obtener los Datos del Polideportivo
* @return Los Datos del Polideportivo
*/
public String toString(){
// Se transforman superficie para poder aplicarle el método toString().
Double datoSuperficie = superficie;
/* Se transforman tipoInstalacion en Integer para poder aplicarle el método toString().
* De otra manera no se" puede hacer por ser de tipo primitivo.*/
Integer datoTipoInstalacion = tipoInstalacion;
// Se devuelve uns String con los datos del Polideportivo
return "EDIFICIO DE TIPO ".concat(datoTipoInstalacion.toString()).concat(" = POLIDEPORTIVO.\n\t- Nombre del polideportivo: ").concat(nombre)
.concat("\n\t- Con una Superficie de: ").concat(datoSuperficie.toString()).concat(" m2.\n");
}
} //Cierre de la clase
Clase EdificioDeOficinas:
Código: [Seleccionar]
/**
* EJERCICIO DE HERENCIAS Y CLASES INTERFACES.<br>
* Esta Clase define una Subclase que implementa la interfaces Edificio_CU00697B.<br>
* Clase 4 del Ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo".
* @author Lorenzo Fernández Asensio
* @version 20151212.01
*/
public class EdificioDeOficinas_CU00697B implements Edificio_CU00697B {
// Inicialización de Atributos
private double superficie;
private int numDeOficinas;
/**
* Constructor 1 del Edificio De Oficinas - Atribututos sin asignación del Valores
* @param superficie El parámetro superficie define la Superficie del EdificioDeOficinas
* @param numDeOficinas El parámetro numDeOficinas define el Número de Oficinas que tiene el Edificio
*/
public EdificioDeOficinas_CU00697B () {
superficie = 0;
numDeOficinas = 0;
} // Cierre del Constructor 1
/**
* Constructor 2 del EdificioDeOficinas - Atribututos con asignación de Valores
* @param superficie El parámetro superficie define la Superficie del EdificioDeOficinas
* @param numDeOficinas El parámetro numDeOficinas define el Número de Oficinas que tiene el Edificio
*/
public EdificioDeOficinas_CU00697B (double superficie, int numDeOficinas) {
this.superficie = superficie;
this.numDeOficinas = numDeOficinas;
} // Cierre del Constructor 2
/**
* Método para establecer la Superficie del EdificioDeOficinas
* @param superficie El parámetro superficie define la Superficie del EdificioDeOficinas
*/
public void setSuperficie (double superficie) {
this.superficie = superficie;
} // Cierre del método para establecer la Superficie del Edificio De Oficinas
/**
* Método para establecer el Número de Oficinas que tiene el Edificio
* @param numDeOficinas El parámetro numDeOficinas define el Número de Oficinas que tiene el Edificio
*/
public void setNumDeOficinas (int numDeOficinas) {
this.numDeOficinas = numDeOficinas;
} // Cierre del método para establecer el Número de Oficinas que tiene el Edificio
/**
* Método para obtener la Superficie del Edificio de Oficinas (Sobreescrito de la interface Edificio)
* @return La Superficie del Edificio
*/
public double getSuperficieEdificio() {
return superficie;
} // Cierre del método para ver que Tipo de Instalación es
/**
* Método para obtener el Número de Oficinas que tiene el Edificio
* @return El Número de Oficinas que tiene el Edificio
*/
public int getNumDeOficinas() {
return numDeOficinas;
} // Cierre del método para ver el Número de Oficinas que tiene el Edificio
/**
* Método para obtener los Datos del Edificio De Oficinas
* @return Los Datos del EdificioDeOficinas
*/
public String toString(){
// Se transforman superficie para poder aplicarle el método toString().
Double datoSuperficie = superficie;
/* Se transforman numDeOficinas en Integer para poder aplicarle el método toString().
* De otra manera no se puede hacer por ser de tipo primitivo.*/
Integer datoNumDeOficinas = numDeOficinas;
// Se devuelve uns String con los datos del EdificioDeOficinas
return "EDIFICIO DE TIPO OFICINAS.\n\t- Con ".concat(datoNumDeOficinas.toString()).concat(" Oficinas")
.concat("\n\t- Con una Superficie Total de: ").concat(datoSuperficie.toString()).concat(" m2.\n");
}
} //Cierre de la clase
Clase Test:
Código: [Seleccionar]
import java.util.Iterator;
import java.util.ArrayList;
/**
* EJERCICIO DE HERENCIAS Y CLASES ITERFACES.<br>
* Esta Clase define una clase test para probar Herencias y Clases Interfaces.<br>
* Clase 5 del Ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo".
* @author Lorenzo Fernández Asensio
* @version 20151212.01
*/
public class Test2Interface_CU00697B {
public static void main (String [ ] Args) {
// Creación de una colección de Tipo Edificio que aceptara objetos polideportivo y Edificio de Oficinas
ArrayList<Edificio_CU00697B> listaEdificios = new ArrayList<Edificio_CU00697B>();
// Se añaden a la lista de Edificios 3 Polideportivos
listaEdificios.add (new Polideportivo_CU00697B ("Miguel Ángel López", 34556.89));
listaEdificios.add (new Polideportivo_CU00697B ("Ruth Beitia", 66477.12));
listaEdificios.add (new Polideportivo_CU00697B ("Eusebio Cáceres", 46333.97));
// Se añaden a la lista de Edificios 2 Edificios de Oficinas
listaEdificios.add (new EdificioDeOficinas_CU00697B (85746.16, 35));
listaEdificios.add (new EdificioDeOficinas_CU00697B (74663.67, 20));
// Se crea un objeto de tipo Iterator
Iterator<Edificio_CU00697B> it = listaEdificios.iterator();
// Se limpia la pantalla de la Consola
System.out.println("\f");
// Se recorre la colección para mostrar los atributos de cada elemento
while (it.hasNext()){
System.out.println(it.next().toString());
}
} // Cierre del main
} // Cierre de la clase
Y la Respuesta a la Pregunta:
Citar
¿Entre qué clases existe una relación que se asemeja a la herencia múltiple?Entre la clase Polideportivo con las clases InstalacionDeportiva y Edificio.
Espero vuestros comentarios,
Muchas Gracias,
Saludos,