Autor Tema: Java cómo creo código refleje herencia uso palabras clave extends super CU00686B  (Leído 2181 veces)

dferna

  • Sin experiencia
  • *
  • Mensajes: 25
    • Ver Perfil
Hola  ;)

Aquí dejo la resolución al ejercicio CU00686B del curso básico de codificación con Java y IDE BlueJ, de herencia.


Clase de test

Código: [Seleccionar]
package test;

import aplicacion.*;

/**
 * Clase encargada de realizar un test de la aplicación
 * @author David
 *
 */
public class TestHerencia2 {

public static void main(String[] args) {

Producto producto = new Producto("23/07/2016",22);
System.out.println("Prueba de lo que contiene el objeto de la clase Producto: "+producto.toString());

ProductoFresco pf1 = new ProductoFresco("23/07/2016", "España", "12/12/2017", 40);
System.out.println("Prueba de lo que contiene el objeto de la clase ProductoFresco: "+pf1.toString());

ProductoRefrigerado pr1 = new ProductoRefrigerado(50, "23/04/2020", 804);
System.out.println("Prueba de lo que contiene el objeto de la clase ProductoRefrigerado: "+pr1.toString());

ProductoCongelado pc1 = new ProductoCongelado("24/05/2025", 45, -30);
System.out.println("Prueba de lo que contiene el objeto de la clase ProductoCongelado: "+pc1.toString());
}

}


Superclase Producto

Código: [Seleccionar]
package aplicacion;


/**
 * Superclase Producto
 * @author David
 *
 */
public class Producto {

private String fechaCaducidad;
private int numeroLote;

//Constructor
public Producto(){

}
//Constructor sobrecargado
public Producto(String fechaCaducidad, int numeroLote){
this.fechaCaducidad = fechaCaducidad;
this.numeroLote = numeroLote;
}

//Getters and Setters
public String getFechaCaducidad(){
return fechaCaducidad;
}

public void setFechaCaducidad(String valorFechaCaducidad){
fechaCaducidad = valorFechaCaducidad;
}

public int getNumeroLote(){
return numeroLote;
}

public void setNumeroLote(int valorNumeroLote){
numeroLote = valorNumeroLote;
}

//Método toString utilizado para obtener en cadena los valores de las propiedades del objeto
public String toString(){

return "Fecha de caducidad "+fechaCaducidad+" //Numero de lote: "+numeroLote;
}
}



Y estas son las subclases

ProductoFresco

Código: [Seleccionar]
package aplicacion;

/**
 * Subclase ProductoFresco que extiende de la clase Producto
 * @author David
 *
 */
public class ProductoFresco extends Producto{

private String fechaEnvasado;
private String paisOrigen;

//Constructor sobrecargado
public ProductoFresco(String fechaEnvasado, String paisOrigen,String fechaCaducidad, int numeroLote){
super(fechaCaducidad, numeroLote);
this.fechaEnvasado = fechaEnvasado;
this.paisOrigen = paisOrigen;
}

//Getters and Setters
public String getFechaEnvasado(){
return fechaEnvasado;
}

public void setFechaEnvasado(String valorFechaEnvasado){
fechaEnvasado = valorFechaEnvasado;
}

public String getPaisOrigen() {
return paisOrigen;
}

public void setPaisOrigen(String valorPaisOrigen) {
paisOrigen = valorPaisOrigen;
}

//Método toString utilizado para obtener en cadena los valores de las propiedades del objeto
public String toString(){
return "Fecha caducidad: "+getFechaCaducidad()+" //Numero de lote: "+getNumeroLote()+" //Fecha envasado: "+fechaEnvasado+" //Pais de origen: "+paisOrigen;
}
}


ProductoRefrigerado

Código: [Seleccionar]
package aplicacion;

public class ProductoRefrigerado extends Producto{

private int codigoOrganismo;

//Constructor sobrecargado
public ProductoRefrigerado(int codigoOrganismo, String fechaCaducidad, int numeroLote){
super(fechaCaducidad, numeroLote);
this.codigoOrganismo = codigoOrganismo;
}

//Getters and Setters
public int getCodigoOrganismo() {
return codigoOrganismo;
}

public void setCodigoOrganismo(int valorCodigoOrganismo) {
codigoOrganismo = valorCodigoOrganismo;
}

//Método toString utilizado para obtener en cadena los valores de las propiedades del objeto
public String toString(){
return "Fecha caducidad: "+getFechaCaducidad()+" //Numero de lote: "+getNumeroLote()+" //Código de organismo: "+codigoOrganismo;
}
}


ProductoCongelado

Código: [Seleccionar]
package aplicacion;

public class ProductoCongelado extends Producto {

private double temperaturaCongelacion;

//Constructor sobrecargado
public ProductoCongelado(String fechaCaducidad, int numeroLote, double temperaturaCongelacion) {
super(fechaCaducidad, numeroLote);
this.temperaturaCongelacion = temperaturaCongelacion;
}


//Getters and Setters
public double getTemperaturaCongelacion() {
return temperaturaCongelacion;
}

public void setTemperaturaCongelacion(double valorTemperaturaCongelacion) {
temperaturaCongelacion = valorTemperaturaCongelacion;
}

//Método toString utilizado para obtener en cadena los valores de las propiedades del objeto
public String toString(){
return "Fecha caducidad: "+getFechaCaducidad()+" //Numero de lote: "+getNumeroLote()+" //Temperatura de congelación: "+temperaturaCongelacion;
}
}


Ejecución del programa

Citar
Prueba de lo que contiene el objeto de la clase Producto: Fecha de caducidad 23/07/2016 //Numero de lote: 22
Prueba de lo que contiene el objeto de la clase ProductoFresco: Fecha caducidad: 12/12/2017 //Numero de lote: 40 //Fecha envasado: 23/07/2016 //Pais de origen: España
Prueba de lo que contiene el objeto de la clase ProductoRefrigerado: Fecha caducidad: 23/04/2020 //Numero de lote: 804 //Código de organismo: 50
Prueba de lo que contiene el objeto de la clase ProductoCongelado: Fecha caducidad: 24/05/2025 //Numero de lote: 45 //Temperatura de congelación: -30.0

Saludos  ;D
« Última modificación: 17 de Junio 2017, 18:15 por Alex Rodríguez »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Buenas dferna.

Todo bien resuelto, solo comentarte que el método toString() ni la sobrescritura de métodos no se explica en el curso hasta el tema CU00694B, en este caso hubiese valido con crear un método en cada una de las clases mostrase la información de cada producto como se mostraba en el ejemplo del tema.

Te dejo una solución basada en lo que pide el enunciado:

https://www.aprenderaprogramar.com/foros/index.php?topic=1179.msg6500#msg6500

Saludos. ;D

 

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".