Autor Tema: Ejemplo de la herencia en Java código que refleja tipo y subtipo clases CU00686B  (Leído 3159 veces)

Ryche

  • Sin experiencia
  • *
  • Mensajes: 11
    • Ver Perfil
Hola, aqui dejo mi solucion al ejercicio de la entrega CU00686B:

Clase Producto:
Código: [Seleccionar]
/**
 * Esta clase define un objeto Producto
 * Atributos: nombre(String),fechaCaducidad(String),numeroLote(int)
 * @author Ryche
 * @version 04/04/2016/v1
 */
public class Producto{
    private String nombre,fechaCaducidad;
    private int numeroLote;
   
    /**
     * Constructor sin parametros:incializa los atributos con valores por defecto
     */
    public Producto(){
        nombre="";
        fechaCaducidad="00/00/0000";
        numeroLote=0;
    }
   
    /**
     * Constructor con parametros:inicializa los atributos con el valor de los parametros
     * @param nombre String
     * @param fechaCaducidad String
     * @param numeroLote int
     */
    public Producto(String nombre,String fechaCaducidad,int numeroLote){
        this.nombre=nombre;
        this.fechaCaducidad=fechaCaducidad;
        this.numeroLote=numeroLote;
    }
   
    /**
     * Método que recupera el valor del nombre
     * @return nombre String
     */
    public String getNombre(){return nombre;}
   
    /**
     * Método que recupera el valor de la fecha de caducidad
     * @return fechaCaducidad String
     */
    public String getFechaCaducidad(){return fechaCaducidad;}
   
    /**
     * Método que recupera el valor del numero de lote
     * @return numeroLote int
     */
    public int getNumeroLote(){return numeroLote;}
   
    /**
     * Método que establece el valor del nombre
     * @param nombre String
     */
    public void setNombre(String nombre){this.nombre=nombre;}
   
    /**
     * Método que establece el valor de la fecha de caducidad
     * @param fechaCaducidad String
     */
    public void setFechaCaducidad(String fechaCaducidad){this.fechaCaducidad=fechaCaducidad;}
   
    /**
     * Método que establece el valor del número de lote
     * @param numeroLote int
     */
    public void setNumeroLote(int numeroLote){this.numeroLote=numeroLote;}
    }

Clase Fresco:
Código: [Seleccionar]
/**
 * Esta clase define un objeto producto fresco (subclase de producto)
 * Atributos: fechaEnvasado (String), paisOrigen (String) y los de la superclase
 * @author Ryche
 * @version 04/04/2106/v1
 */
public class Fresco extends Producto{
    private String fechaEnvasado,paisOrigen;
   
    /**
     * Constructor sin parametros:inicializa los atributos con valores por defecto
     */
    public Fresco(){
        super();
        fechaEnvasado="00/00/0000";
        paisOrigen="Desconocido";
    }
   
    /**
     * Constructor con parametros: incializa los atributos con el valor de los parámetros
     * @param nombre String
     * @param fechaCaducidad String
     * @param numeroLote int
     * @param fechaEnvasado String
     * @param paisOrigen String
     */
    public Fresco(String nombre,String fechaCaducidad,int numeroLote,String fechaEnvasado,String paisOrigen){
        super(nombre,fechaCaducidad,numeroLote);
        this.fechaEnvasado=fechaEnvasado;
        this.paisOrigen=paisOrigen;
    }
   
    /**
     * Método que recupera el valor de la fecha de envasado
     * @return fechaEnvasado String
     */
    public String getFechaEnvasado(){return fechaEnvasado;}
   
    /**
     * Método que recupera el valor del pais de origen
     * @return paisOrigen String
     */
    public String getPaisOrigen(){return paisOrigen;}
   
    /**
     * Método que establece el valor de la fecha de envasado
     * @param fechaEnvasado String
     */
    public void setFechaEnvasado(String fechaEnvasado){this.fechaEnvasado=fechaEnvasado;}
   
    /**
     * Método que establece el valor del pais de origen
     * @param paisOrigen String
     */
    public void setPaisOrigen(String paisOrigen){this.paisOrigen=paisOrigen;}
   
    /**
     * Método que muestra los datos del producto
     */
    public void mostrarProductoFresco(){
        System.out.println("PRODUCTO FRESCO");
        System.out.println("Nombre: "+getNombre());
        System.out.println("Número de lote: "+getNumeroLote());
        System.out.println("Fecha de caducidad: "+getFechaCaducidad());
        System.out.println("Fecha de envasado: "+getFechaEnvasado());
        System.out.println("Pais de origen: "+getPaisOrigen());
    }
}

Clase Refrigerado:
Código: [Seleccionar]
/**
 * Esta clase define un objeto producto refrigerado (subclase de producto)
 * Atributos: codigoSupervision (String)  y los de la superclase
 * @author Ryche
 * @version 04/04/2106/v1
 */
public class Refrigerado extends Producto{
    private String codigoSupervision;
    /**
     * Constructor sin parametros:inicializa los atributos con valores por defecto
     */
    public Refrigerado(){
        super();
        codigoSupervision="";
            }
    /**
     * Constructor con parametros: incializa los atributos con el valor de los parámetros
     * @param nombre String
     * @param fechaCaducidad String
     * @param numeroLote int
     * @param codigoSupervision String
    */
    public Refrigerado(String nombre,String fechaCaducidad,int numeroLote,String codigoSupervision){
        super(nombre,fechaCaducidad,numeroLote);
        this.codigoSupervision=codigoSupervision;
            }
    /**
     * Método que recupera el valor del codigo de supervisión
     * @return codigoSupervision String
     */
    public String getCodigoSupervision(){return codigoSupervision;}
    /**
     * Método que establece el valor del código de supervisión
     * @param codigoSupervision String
     */
    public void setCodigoSupervision(String codigoSupervision){this.codigoSupervision=codigoSupervision;}
    /**
     * Método que muestra los datos del producto
     */
    public void mostrarProductoRefrigerado(){
        System.out.println("PRODUCTO REFRIGERADO");
        System.out.println("Nombre: "+getNombre());
        System.out.println("Número de lote: "+getNumeroLote());
        System.out.println("Fecha de caducidad: "+getFechaCaducidad());
        System.out.println("Código de supervisión: "+getCodigoSupervision());
            }
}

Clase Congelado:
Código: [Seleccionar]
/**
 * Esta clase define un objeto producto congelado (subclase de producto)
 * Atributos: temperaturaCongelacion (int)  y los de la superclase
 * @author Ryche
 * @version 04/04/2106/v1
 */
public class Congelado extends Producto{
    private int temperaturaCongelacion;
    /**
     * Constructor sin parametros:inicializa los atributos con valores por defecto
     */
    public Congelado(){
        super();
        temperaturaCongelacion=0;
            }
    /**
     * Constructor con parametros: incializa los atributos con el valor de los parámetros
     * @param nombre String
     * @param fechaCaducidad String
     * @param numeroLote int
     * @param temperaturaCongelacion int
    */
    public Congelado(String nombre,String fechaCaducidad,int numeroLote,int temperaturaCongelacion){
        super(nombre,fechaCaducidad,numeroLote);
        this.temperaturaCongelacion=temperaturaCongelacion;
            }
    /**
     * Método que recupera el valor de la temperatura de congelacion
     * @return temperaturaCongelacion int
     */
    public int getTemperaturaCongelacion(){return temperaturaCongelacion;}
    /**
     * Método que establece el valor de la temperatura de congelacion
     * @param temperaturaCongelacion int
     */
    public void setTemperaturaCongelacion(int temperaturaCongelacion){
        this.temperaturaCongelacion=temperaturaCongelacion;}
    /**
     * Método que muestra los datos del producto
     */
    public void mostrarProductoCongelado(){
        System.out.println("PRODUCTO CONGELADO");
        System.out.println("Nombre: "+getNombre());
        System.out.println("Número de lote: "+getNumeroLote());
        System.out.println("Fecha de caducidad: "+getFechaCaducidad());
        System.out.println("Temperatura de congelación: "+getTemperaturaCongelacion());
            }
}

Clase TestHerencia:
Código: [Seleccionar]
/**
 * Ejercicio CU00686B
 * Esta clase es un ejemplo del uso de la herencia en Java
 * Crea un objeto de cada tipo y luego muestra su contenido
 * @author Ryche
 * @version 04/04/2016/v1
 */
public class TestHerencia2{
    public static void main(String[]args){
        Fresco productoFresco=new Fresco();
        EntradaDeTeclado entrada=new EntradaDeTeclado();
        System.out.println("CREACION DE PRODUCTO FRESCO");
        System.out.println("Introduce el nombre del producto: ");
        entrada.pedirEntrada();
        productoFresco.setNombre(entrada.getEntrada());
        System.out.println("Introduce el numero de lote:");
        entrada.pedirEntrada();
        Integer lote1=Integer.valueOf(entrada.getEntrada());
        productoFresco.setNumeroLote(lote1);
        System.out.println("Introduce le fecha de caducidad (DD/MM/AAAA):");
        entrada.pedirEntrada();
        productoFresco.setFechaCaducidad(entrada.getEntrada());
        System.out.println("Introduce la fecha de envasado (DD/MM/AAAA):");
        entrada.pedirEntrada();
        productoFresco.setFechaEnvasado(entrada.getEntrada());
        System.out.println("Introduce el pais de origen:");
        entrada.pedirEntrada();
        productoFresco.setPaisOrigen(entrada.getEntrada());
               
        Refrigerado productoRefrigerado=new Refrigerado();
        System.out.println("CREACION DE PRODUCTO REFRIGERADO");
        System.out.println("Introduce el nombre el producto: ");
        entrada.pedirEntrada();
        productoRefrigerado.setNombre(entrada.getEntrada());
        System.out.println("Introduce el numero de lote:");
        entrada.pedirEntrada();
        Integer lote2=Integer.valueOf(entrada.getEntrada());
        productoRefrigerado.setNumeroLote(lote2);
        System.out.println("Introduce le fecha de caducidad (DD/MM/AAAA):");
        entrada.pedirEntrada();
        productoRefrigerado.setFechaCaducidad(entrada.getEntrada());
        System.out.println("Introduce el código de supervisión:");
        entrada.pedirEntrada();
        productoRefrigerado.setCodigoSupervision(entrada.getEntrada());
       
        Congelado productoCongelado=new Congelado();
        System.out.println("CREACION DE PRODUCTO CONGELADO");
        System.out.println("Introduce el nombre del producto: ");
        entrada.pedirEntrada();
        productoCongelado.setNombre(entrada.getEntrada());
        System.out.println("Introduce el numero de lote:");
        entrada.pedirEntrada();
        Integer lote3=Integer.valueOf(entrada.getEntrada());
        productoCongelado.setNumeroLote(lote3);
        System.out.println("Introduce le fecha de caducidad (DD/MM/AAAA):");
        entrada.pedirEntrada();
        productoCongelado.setFechaCaducidad(entrada.getEntrada());
        System.out.println("Introduce la temperatura de congelación:");
        entrada.pedirEntrada();
        Integer temperatura=Integer.valueOf(entrada.getEntrada());
        productoCongelado.setTemperaturaCongelacion(temperatura);
       
        System.out.println("DATOS DE LOS PRODUCTOS CREADOS:");
        productoFresco.mostrarProductoFresco();
        productoRefrigerado.mostrarProductoRefrigerado();
        productoCongelado.mostrarProductoCongelado();
    }
}
         

Tambien uso la clase EntradaDeTeclado:
Código: [Seleccionar]
import java.util.Scanner;
/**
 * Esta clase define un objeto String para pedir una entrada de teclado mediante Scanner
 * @author Ryche
 * @version 03/04/2016/v1
 */
public class EntradaDeTeclado{
    private String entradaTeclado;
    /**
     * Costructor que inicializa la variable entradaTeclado
     */
    public EntradaDeTeclado(){entradaTeclado="";}
    /**
     * Metodo que asigna a la variable entradaTeclado la siguiente entrada por teclado que haga el usuario
     */
    public void pedirEntrada(){
        Scanner entradaEscaner=new Scanner(System.in);
        entradaTeclado=entradaEscaner.nextLine();
    }
    /**
     * Metodo que devuelve el valor de la variable entradaTeclado
     * @return entradaTeclado String
    */
    public String getEntrada(){return entradaTeclado;}
}

« Última modificación: 07 de Abril 2016, 20:35 por Mario R. Rancel »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Buenas tardes Ryche en general creo que tu código merece una valoración positiva. Procedo a dar algunos detalles.

Clase EntradaDeTeclado ok

Clase Producto ok, bien comentada

Clase Fresco ok, bien comentada

En estas clases tienes métodos mostrarProducto como

Código: [Seleccionar]
    public void mostrarProductoFresco(){
        System.out.println("PRODUCTO FRESCO");
        System.out.println("Nombre: "+getNombre());
        System.out.println("Número de lote: "+getNumeroLote());
        System.out.println("Fecha de caducidad: "+getFechaCaducidad());
        System.out.println("Fecha de envasado: "+getFechaEnvasado());
        System.out.println("Pais de origen: "+getPaisOrigen());
    }

Fíjate que algunos atributos pertencen a la superclase (Producto), por tanto podrías haber definido un método en la superclase para evitar tener que repetir las instrucciones en las subclases. En este hilo puedes ver un ejemplo de esto que comento: https://www.aprenderaprogramar.com/foros/index.php?topic=1179.0

Clase TestHerencia2 ok pero tienes demasiada repetición de instrucciones. Cuando veas algo así, debes intentar crear métodos que ejecuten las instrucciones cuando sean llamados de modo que no tengas que repetir tantas veces las mismas instrucciones.

Saludos,

Ryche

  • Sin experiencia
  • *
  • Mensajes: 11
    • Ver Perfil
Bueno, he creado algunos procedimientos para las tareas repetitivas, y la verdad es que el Test ahora no tiene ni comparación. La clase EntradaDeTeclado no la vuelvo a poner, no ha sufrido ningun cambio

Clase TestHerencia
Código: [Seleccionar]
/**
 * Ejercicio CU00686B
 * Esta clase es un ejemplo del uso de la herencia en Java
 * Crea un objeto de cada tipo y luego muestra su contenido
 * @author Ryche
 * @version 07/04/2016/v2
 */
public class TestHerencia2{
    public static void main(String[]args){
        Fresco productoFresco=new Fresco();
        productoFresco.creacionProductoFresco();
        Refrigerado productoRefrigerado=new Refrigerado();
        productoRefrigerado.creacionProductoRefrigerado();
        Congelado productoCongelado=new Congelado();
        productoCongelado.creacionProductoCongelado();
               
        System.out.println("DATOS DE LOS PRODUCTOS CREADOS:");
        productoFresco.mostrarProductoFresco();
        productoRefrigerado.mostrarProductoRefrigerado();
        productoCongelado.mostrarProductoCongelado();
    }
}

Clase Producto
Código: [Seleccionar]
/**
 * Esta clase define un objeto Producto
 * Atributos: nombre(String),fechaCaducidad(String),numeroLote(int)
 * @author Ryche
 * @version 07/04/2016/v2
 */
public class Producto{
    private String nombre,fechaCaducidad;
    private int numeroLote;
   
    /**
     * Constructor sin parametros:incializa los atributos con valores por defecto
     */
    public Producto(){
        nombre="";
        fechaCaducidad="00/00/0000";
        numeroLote=0;
    }
   
    /**
     * Constructor con parametros:inicializa los atributos con el valor de los parametros
     * @param nombre String
     * @param fechaCaducidad String
     * @param numeroLote int
     */
    public Producto(String nombre,int numeroLote,String fechaCaducidad){
        this.nombre=nombre;
        this.fechaCaducidad=fechaCaducidad;
        this.numeroLote=numeroLote;
    }
   
    /**
     * Método que recupera el valor del nombre
     * @return nombre String
     */
    public String getNombre(){return nombre;}
   
    /**
     * Método que recupera el valor de la fecha de caducidad
     * @return fechaCaducidad String
     */
    public String getFechaCaducidad(){return fechaCaducidad;}
   
    /**
     * Método que recupera el valor del numero de lote
     * @return numeroLote int
     */
    public int getNumeroLote(){return numeroLote;}
   
    /**
     * Método que establece el valor del nombre
     * @param nombre String
     */
    public void setNombre(String nombre){this.nombre=nombre;}
   
    /**
     * Método que establece el valor de la fecha de caducidad
     * @param fechaCaducidad String
     */
    public void setFechaCaducidad(String fechaCaducidad){this.fechaCaducidad=fechaCaducidad;}
   
    /**
     * Método que establece el valor del número de lote
     * @param numeroLote int
     */
    public void setNumeroLote(int numeroLote){this.numeroLote=numeroLote;}
    /**
     * Metodo que muestra los datos comunes a todos los productos
     */
    public void mostrarComunProducto(){
        System.out.println("Nombre: "+getNombre());
        System.out.println("Número de lote: "+getNumeroLote());
        System.out.println("Fecha de caducidad: "+getFechaCaducidad());}
    /**
     * Método que solicita los datos comunes a todos los productos
     */
    public void creacionComunProducto(){
        Producto producto=new Producto();
        EntradaDeTeclado entrada=new EntradaDeTeclado();
        System.out.println("Introduce el nombre del producto: ");
        entrada.pedirEntrada();
        setNombre(entrada.getEntrada());
        System.out.println("Introduce el numero de lote: ");
        entrada.pedirEntrada();
        Integer lote=Integer.valueOf(entrada.getEntrada());
        setNumeroLote(lote);
        System.out.println("Introduce la fecha de caducidad (DD/MM/AAAA): ");
        entrada.pedirEntrada();
        setFechaCaducidad(entrada.getEntrada());
            }
    }

Clase Fresco
Código: [Seleccionar]
/**
 * Esta clase define un objeto producto fresco (subclase de producto)
 * Atributos: fechaEnvasado (String), paisOrigen (String) y los de la superclase
 * @author Ryche
 * @version 07/04/2106/v2
 */
public class Fresco extends Producto{
    private String fechaEnvasado,paisOrigen;
   
    /**
     * Constructor sin parametros:inicializa los atributos con valores por defecto
     */
    public Fresco(){
        super();
        fechaEnvasado="00/00/0000";
        paisOrigen="Desconocido";
    }
   
    /**
     * Constructor con parametros: incializa los atributos con el valor de los parámetros
     * @param nombre String
     * @param fechaCaducidad String
     * @param numeroLote int
     * @param fechaEnvasado String
     * @param paisOrigen String
     */
    public Fresco(String nombre,String fechaCaducidad,int numeroLote,String fechaEnvasado,String paisOrigen){
        super(nombre,numeroLote,fechaCaducidad);
        this.fechaEnvasado=fechaEnvasado;
        this.paisOrigen=paisOrigen;
    }
   
    /**
     * Método que recupera el valor de la fecha de envasado
     * @return fechaEnvasado String
     */
    public String getFechaEnvasado(){return fechaEnvasado;}
   
    /**
     * Método que recupera el valor del pais de origen
     * @return paisOrigen String
     */
    public String getPaisOrigen(){return paisOrigen;}
   
    /**
     * Método que establece el valor de la fecha de envasado
     * @param fechaEnvasado String
     */
    public void setFechaEnvasado(String fechaEnvasado){this.fechaEnvasado=fechaEnvasado;}
   
    /**
     * Método que establece el valor del pais de origen
     * @param paisOrigen String
     */
    public void setPaisOrigen(String paisOrigen){this.paisOrigen=paisOrigen;}
   
    /**
     * Método que muestra los datos del producto
     */
    public void mostrarProductoFresco(){
        System.out.println("PRODUCTO FRESCO");
        mostrarComunProducto();
        System.out.println("Fecha de envasado: "+getFechaEnvasado());
        System.out.println("Pais de origen: "+getPaisOrigen());}
    /**
     * Metodo que solicita los datos del producto
     */
    public void creacionProductoFresco(){
        EntradaDeTeclado entrada=new EntradaDeTeclado();
        System.out.println("CREACION DE PRODUCTO FRESCO");
        creacionComunProducto();
        System.out.println("Introduce la fecha de envasado (DD/MM/AAAA): ");
        entrada.pedirEntrada();
        setFechaEnvasado(entrada.getEntrada());
        System.out.println("Introduce el pais de origen: ");
        entrada.pedirEntrada();
        setPaisOrigen(entrada.getEntrada());}
    }

Clase Refrigerado:
Código: [Seleccionar]
/**
 * Esta clase define un objeto producto refrigerado (subclase de producto)
 * Atributos: codigoSupervision (String)  y los de la superclase
 * @author Ryche
 * @version 07/042106/v2
 */
public class Refrigerado extends Producto{
    private String codigoSupervision;
    /**
     * Constructor sin parametros:inicializa los atributos con valores por defecto
     */
    public Refrigerado(){
        super();
        codigoSupervision="";
            }
    /**
     * Constructor con parametros: incializa los atributos con el valor de los parámetros
     * @param nombre String
     * @param fechaCaducidad String
     * @param numeroLote int
     * @param codigoSupervision String
    */
    public Refrigerado(String nombre,int numeroLote,String fechaCaducidad,String codigoSupervision){
        super(nombre,numeroLote,fechaCaducidad);
        this.codigoSupervision=codigoSupervision;
            }
    /**
     * Método que recupera el valor del codigo de supervisión
     * @return codigoSupervision String
     */
    public String getCodigoSupervision(){return codigoSupervision;}
    /**
     * Método que establece el valor del código de supervisión
     * @param codigoSupervision String
     */
    public void setCodigoSupervision(String codigoSupervision){this.codigoSupervision=codigoSupervision;}
    /**
     * Método que muestra los datos del producto
     */
    public void mostrarProductoRefrigerado(){
        System.out.println("PRODUCTO REFRIGERADO");
        mostrarComunProducto();
        System.out.println("Código de supervisión: "+getCodigoSupervision());}
    /**
     * Método que solicita los datos del producto
     */
    public void creacionProductoRefrigerado(){
        EntradaDeTeclado entrada=new EntradaDeTeclado();
        System.out.println("CREACION DE PRODUCTO REFRIGERADO");
        creacionComunProducto();
        System.out.println("Introduce el código de supervisión: ");
        entrada.pedirEntrada();
        setCodigoSupervision(entrada.getEntrada());}
}

Clase Congelado:
Código: [Seleccionar]
/**
 * Esta clase define un objeto producto congelado (subclase de producto)
 * Atributos: temperaturaCongelacion (int)  y los de la superclase
 * @author Ryche
 * @version 07/04/2106/v2
 */
public class Congelado extends Producto{
    private int temperaturaCongelacion;
    /**
     * Constructor sin parametros:inicializa los atributos con valores por defecto
     */
    public Congelado(){
        super();
        temperaturaCongelacion=0;
            }
    /**
     * Constructor con parametros: incializa los atributos con el valor de los parámetros
     * @param nombre String
     * @param fechaCaducidad String
     * @param numeroLote int
     * @param temperaturaCongelacion int
    */
    public Congelado(String nombre,int numeroLote,String fechaCaducidad,int temperaturaCongelacion){
        super(nombre,numeroLote,fechaCaducidad);
        this.temperaturaCongelacion=temperaturaCongelacion;
            }
    /**
     * Método que recupera el valor de la temperatura de congelacion
     * @return temperaturaCongelacion int
     */
    public int getTemperaturaCongelacion(){return temperaturaCongelacion;}
    /**
     * Método que establece el valor de la temperatura de congelacion
     * @param temperaturaCongelacion int
     */
    public void setTemperaturaCongelacion(int temperaturaCongelacion){
        this.temperaturaCongelacion=temperaturaCongelacion;}
    /**
     * Método que muestra los datos del producto
     */
    public void mostrarProductoCongelado(){
        System.out.println("PRODUCTO CONGELADO");
        mostrarComunProducto();
        System.out.println("Temperatura de congelación: "+getTemperaturaCongelacion());}
    /**
     * Método que solicita los datos del producto
     */
    public void creacionProductoCongelado(){
        EntradaDeTeclado entrada=new EntradaDeTeclado();
        System.out.println("CREACION DE PRODUCTO CONGELADO");
        creacionComunProducto();
        System.out.println("Introduce la temperatura de congelacion: ");
        entrada.pedirEntrada();
        Integer temperatura=Integer.valueOf(entrada.getEntrada());
        setTemperaturaCongelacion(temperatura);}
}

 

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