Autor Tema: Ejemplo de herencia en Java con relación jerárquica entre varias clases CU00686B  (Leído 3252 veces)

umadara

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 45
    • Ver Perfil
Buenas aquí otro ejercicio, el CU00686B del tutorial básico de programación en lenguaje Java.

Código: [Seleccionar]
public class Productos {
   
    private double fCaducidad;
   
    private int nºLote;
   
    public Productos (double fCaducidad, int nºLote) {
       
        this.fCaducidad = fCaducidad;
       
        this.nºLote = nºLote;
       
    }
   
    public void fCaducidad (double fCaducidad) {
       
        this.fCaducidad = fCaducidad;
   
    }
   
    public void nºLote (int nºLote) {
       
        this.nºLote = nºLote;
   
    }
   
    public double getCaducidad () {return fCaducidad;}
   
    public int getNºLote () { return nºLote;}
   
}

Código: [Seleccionar]
public class Pfrescos extends Productos {
   
    private double fenvasado;
   
    private String porigen;
   
    public Pfrescos (double fCaducidad, int nºLote) {
       
        super (fCaducidad, nºLote);
       
        fenvasado = 0.0;
       
        porigen = "";
   
    }
   
    public void setfenvasado (double fenvasado) {
       
        this.fenvasado = fenvasado;
   
    }
   
    public void setporigen (String porigen) {
       
        this.porigen = porigen;
   
    }
   
    public double getfenvasado() {return fenvasado;}
   
    public String getporigen() {return porigen;}
   
    public void mostrarPf() {
       
        System.out.println ("el producto fresco fué envasado en fecha de " + getCaducidad() + "\n"+ " el número de lote es " + getNºLote() + "\n" + " la fecha de envasado es " + getfenvasado() + "\n" + "el país de origen del producto es " + getporigen());
   
    }

}

Código: [Seleccionar]
public class Prefrigerados extends Productos {
   
    String cOrganismo;
   
    public Prefrigerados (double fCaducidad, int nºLote) {
       
        super (fCaducidad, nºLote);
       
        cOrganismo = "";

    }
   
    public void setCOrganismo ( String cOrganismo) {
       
        this.cOrganismo = cOrganismo;
   
    }

    public String getCOrganismo () {return cOrganismo;}
   
    public void mostrarPr() {
       
         System.out.println ("el producto refrigerado fué envasado en fecha de " + getCaducidad() + "\n"+ " el número de lote es " + getNºLote() + "\n" + " el código del organismo de supervision alimentaria es " + getCOrganismo ()) ;
   
    }

}

Código: [Seleccionar]
public class Pcongelados extends Productos {
   
    private double tªCongelacion;
   
    public Pcongelados (double fCaducidad, int nºLote) {
       
        super (fCaducidad, nºLote);
       
        tªCongelacion = 0.0;
   
    }
   
    public void setTªCongelacion (double tªCongelacion) {
       
        this.tªCongelacion = tªCongelacion;
   
    }
   
    public double getTªCongelacion() {return tªCongelacion;}
   
    public void mostrarpCongelados() {
       
        System.out.println ("el producto congelado fué envasado en fecha de " + getCaducidad() + "\n"+ " el número de lote es " + getNºLote() + "\n" + " la temperatura de congelación del producto " + getTªCongelacion()) ;
   
    }

}

Código: [Seleccionar]
public class TestHerencia {
   
    public static void main (String [] args) {
       
        Pfrescos producto1 = new Pfrescos (10.12 , 12);
       
        producto1.setfenvasado(10.10);
       
        producto1.setporigen("España");
       
        producto1.mostrarPf();
       
        Prefrigerados producto2 = new Prefrigerados (10.12 , 12);
       
        producto2.setCOrganismo("CO1");
       
        producto2.mostrarPr();
       
        Pcongelados producto3 = new Pcongelados (10.12 ,12);
       
        producto3.setTªCongelacion(-1.5);
       
        producto3.mostrarpCongelados();

    }

}

Gracias por vuestro comentario

un saludo
« Última modificación: 18 de Julio 2016, 14:58 por Mario R. Rancel »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Buenas tardes Umadara en este ejercicio al igual que en otro anterior es recomendable mejorar la forma de nombrar las clases Java. Los nombres de clase deben comenzar por mayúscula y estar en singular. Hay una explicación sobre esto en https://www.aprenderaprogramar.com/foros/index.php?topic=3035.msg13698#msg13698

Evitar tener caracteres como ª en los nombres de atributos, por ejemplo en tªCongelacion = 0.0; Estos caracteres a la larga te pueden traer problemas.

Debes mejorar también la forma de nombrar métodos, por ejemplo el método public void fCaducidad (double fCaducidad) debería llamarse public void setFCaducidad (double fCaducidad). Esto es una convención usada por todos los programadores (uso de prefijos get para recuperar y set para establecer atributos de clase).

Puedes guiarte por este ejercicio https://www.aprenderaprogramar.com/foros/index.php?topic=2306.0 para tener una referencia.

Saludos.

 

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