Autor Tema: Java diferencia entre double y Double tipo primitivo y objeto ejercicio CU00636B  (Leído 11779 veces)

eduardoc

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
Buenas, dejo la solución para el ejercicio de referencia CU00636B del tutorial de programación autoevaluable de Java.

Aprovecho para consultar sobre la asignación a una variable del tipo Double, mi primer intención fue inicializar con 0 pero al compilar me indicó un error por lo que probé con 0.0, debido al tipo.

Tal vez exista alguna razón.

De ingresarse el valor 0 durante la ejecución sería un error y se debe controlar el formato antes de realizar la asignación?

Gracias mil de antemano. Saludos,
Edu.

Código: [Seleccionar]
public class Rueda{
    String tipo;
    Double grosor;
    Double diametro;
    String marca;
   
    //Constructor.
    public void Rueda(){
        tipo = "";
        grosor = 0.0 ;
        diametro = 0.0 ;
        marca = "";     
    }
   
    // Setters.
    public void setTipo(String valorTipo){
        tipo = valorTipo;
    }
   
    public void setGrosor(Double valorGrosor){
        grosor = valorGrosor;
    }
   
    public void setDiametro(Double valorDiametro){
        diametro = valorDiametro;
    }
   
    public void setMarca(String valorMarca){
        marca = valorMarca;
    }
   
    // Getters.
    public String getTipo(){return tipo;}
    public Double getGrosor() {return grosor;}
    public Double getDiametro() {return diametro;}
    public String getMarca() {return marca;}
   
    // Método para comprobar diámetros.
    public void comprobarDiametros(){
        if (diametro > 1.4) {
            System.out.println("La rueda es para un vehículo grande.");
        } else if (diametro <= 1.4 && diametro > 0.8) {
            System.out.println("La rueda es para un vehículo mediano.");
        } else {
            System.out.println("La rueda es para un vehículo pequeño.");
        }
    }
}
« Última modificación: 30 de Junio 2016, 16:00 por Alex Rodríguez »

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
El constructor tiene que ser public nomas solo los métodos lo que puede ser void.
Este esta mal.
Código: [Seleccionar]
//Constructor.
    public void Rueda(){
        tipo = "";
        grosor = 0.0 ;
        diametro = 0.0 ;
        marca = "";     
    }
Tiene que se así.
Código: [Seleccionar]
//Constructor.
    public Rueda(){
        tipo = "";
        grosor = 0.0 ;
        diametro = 0.0 ;
        marca = "";     
    }
Y también le falta mas condición a tu Métodos para poder cumplir todo lo que pide el ejercicios.

eduardoc

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
DRANXZ88, gracias por ambas correcciones.
Respecto al constructor no había reparado en que no lleva "void".
Sobre la falta de condición, un descuido de mi parte. Intentaré hacer los ejercicios con menos prisa.

Sinceramente, muchas gracias.

Dejo el código corregido en la definición del constructor y con el agregado de condición.

Código: [Seleccionar]
public class Rueda{
    String tipo;
    Double grosor;
    Double diametro;
    String marca;
   
    //Constructor.
    public Rueda(){
        tipo = "";
        grosor = 0.0 ;
        diametro = 0.0 ;
        marca = "";     
    }
   
    // Setters.
    public void setTipo(String valorTipo){
        tipo = valorTipo;
    }
   
    public void setGrosor(Double valorGrosor){
        grosor = valorGrosor;
    }
   
    public void setDiametro(Double valorDiametro){
        diametro = valorDiametro;
    }
   
    public void setMarca(String valorMarca){
        marca = valorMarca;
    }
   
    // Getters.
    public String getTipo(){return tipo;}
    public Double getGrosor() {return grosor;}
    public Double getDiametro() {return diametro;}
    public String getMarca() {return marca;}
   
    // Método para comprobar diámetros.
    public void comprobarDiametros(){
        if (diametro > 1.4) {
            System.out.println("La rueda es para un vehículo grande.");
            if (grosor < 0.4) {
                System.out.println("El grosor para esta rueda es inferior al recomendado");
            }
        } else if (diametro <= 1.4 && diametro > 0.8) {
            System.out.println("La rueda es para un vehículo mediano.");
            if (grosor < 0.25) {
                 System.out.println("El grosor para esta rueda es inferior al recomendado");
            }
           } else {
               System.out.println("La rueda es para un vehículo pequeño.");
        }
    }
}

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola Eduardo, hay un aspecto importante a tener en cuenta.

En Java no es lo mismo double que Double. En concreto double es un tipo de dato denominado "primitivo" mientras que Double es un tipo de dato denominado "objeto".

Se presta a confusión porque es un simple cambio de minúscula a mayúscula pero es importante que lo tengas claro. Repasa esta entrega del curso: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=419:tipos-de-datos-java-tipos-primitivos-int-boolean-y-objeto-string-array-o-arreglo-variables-cu00621b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

En este ejercicio se pide usar double (el tipo primitivo).

Respecto a que en algunos casos haya que asignar 0.0 en lugar de 0 la razón es que así lo exige el compilador. Posiblemente los creadores del lenguaje lo hicieron así para forzar al programador a hacer explícito que necesita un dato decimal en lugar de entero. En general es preferible siempre usar el tipo de dato más simple posible.

Sobre si ingresar el valor 0 te puede generar un error: depende. En algunas ocasiones se producen conversiones automáticas que evitan que salten errores. Más adelante en el curso podrás hacer pruebas tú mismo.

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