Autor Tema: practica CU00636B condicionales if else java  (Leído 5833 veces)

BelCrow

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 46
  • Técnico en Redes (CCNA-IT).
    • Ver Perfil
practica CU00636B condicionales if else java
« en: 27 de Agosto 2014, 03:15 »
favor indicar si cometi alguna falla en el codigo:

Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Rueda (que representa a una rueda de un vehículo). Define una clase Rueda considerando los siguientes atributos de clase: tipo (String), grosor (double), diametro (double), marca (String). Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos. Crea un método denominado comprobarDimensiones donde a través de condicionales if realices las siguientes comprobaciones:

a) Si el diámetro es superior a 1.4 debe mostrarse por consola el mensaje “La rueda es para un vehículo grande”. Si es menor o igual a 1.4 pero mayor que 0.8 debe mostrarse por consola el mensaje “La rueda es para un vehículo mediano”. Si no se cumplen ninguna de las condiciones anteriores debe mostrarse por pantalla el mensaje “La rueda es para un vehículo pequeño”.

b) Si el diámetro es superior a 1.4 con un grosor inferior a 0.4, ó si el diámetro es menor o igual a 1.4 pero mayor que 0.8, con un grosor inferior a 0.25, deberá mostrarse por consola el mensaje “El grosor para esta rueda es inferior al recomendado”.


Código: [Seleccionar]
//rueda
public class rueda {
    String tipo;
    double grosor;
    double diametro;
    String marca;

    public rueda () {
        tipo="";
        grosor=0;
        diametro=0;
        marca="";
    }

    //Setters
    public void set_tipo (String valor_tipo) {
        tipo=valor_tipo;
    }

    public void set_grosor (double valor_grosor) {
        grosor=valor_grosor;
    }

    public void set_diametro (double valor_diametro) {
        diametro=valor_diametro;
    }

    public void set_marca (String valor_marca) {
        marca=valor_marca;
    }

    //Getters
    public String get_tipo () {return tipo;}

    public double get_grosor () {return grosor;}

    public double get_diamtro () {return diametro;}

    public String get_marca () {return marca;}

    //aqui se agregan los If y Else en la practica.
    public void comprobarDimensiones () {
        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");
        }

        if (diametro>1.4 && grosor<0.4 || diametro<=1.4 && diametro>0.8 && grosor<0.25){
            System.out.println ("El grosor para esta rueda es inferior al recomendado");
        }
        else{}
    }
}
« Última modificación: 31 de Agosto 2014, 10:42 por Alex Rodríguez »
public lenguajePoderoso () {
          java = "poder";
       }

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:practica CU00636B
« Respuesta #1 en: 27 de Agosto 2014, 05:21 »
 Hola joellord!

El código compila y cumple con lo requerido por el enunciado del ejercicio.

Cosas a mejorar en cuanto al diseño del código:

1: has declarado, public class rueda. Lo correcto es que el nombre de una clase comience siempre con letra mayúscula. ejemp: public class Rueda.

2: Todas las variables se deben declarar privadas, ejemp: private String tipo, private double grosor, private ...ect.

3: Tanto para nombres de variables como para nombres de métodos que contengan mas de una palabra, es preferible que la primera letra de la primera palabra comience con una letra minúscula y la primera letra de las demás palabras comiencen con letra mayúscula, por tanto seria conveniente sustituir el nombre de tu método "set_tipo()" por "set_Tipo()" 0 "setTipo()". (Lo mismo para los demás métodos)

De mi parte, esos son los puntos a reforzar que pude identificar.
Saludos!
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

BelCrow

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 46
  • Técnico en Redes (CCNA-IT).
    • Ver Perfil
Re:practica CU00636B
« Respuesta #2 en: 27 de Agosto 2014, 11:52 »
muchas gracias sniper.... como vi en una repuesta que habias dicho que es conveniente que empiecen en minuscula y que la segunda palabra empiece en mayuscula por ejemplo: setTipo, pense que aplicaba tambien en el nombre de las clases y tambien pense que si ponia un "_", esa regla no aplicaba, 

y con lo del private.. en las practicas decian que como no hemos tcado el tema aun de diferenciar que lleva public y private, que hicieramos todo con public hasta llegar a ese punto... yo en lo personal no c cuando llevan public o private ya que no he alcansado ese teme, pero si me das una instrucion rapida, podria saber donde usarlos.

disculpa las faltas, te aseguro que reforsare esos puntos... en verdad aprecio que evaluen el codigo  ;)...
public lenguajePoderoso () {
          java = "poder";
       }

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:practica CU00636B
« Respuesta #3 en: 27 de Agosto 2014, 15:05 »
 Por el momento, quédate con la idea de que todas las variables de una clase se deben declarar como private. porque?  En una declaración como: private String nombre;

private: indica que solo se puede acceder a la variable "nombre" desde el código de la propia clase y no desde el código de otras clases.

En general las buenas practicas dicen que toda variable que sea declarada en una clase debería de ser privada a menos que exista una justificación para no declararla así.

En cuanto a saber cuando declarar una variable public o private o protected, o si es conveniente y cuando es conveniente declarar una variable, un constructor o un método. public, private o protected, te darás de cuenta mas adelante conforme avances en el curso.

Saludos!
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

BelCrow

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 46
  • Técnico en Redes (CCNA-IT).
    • Ver Perfil
Re:practica CU00636B
« Respuesta #4 en: 27 de Agosto 2014, 16:10 »
Gracias Sniper.. entonces en los getters pondre private..... no en los setters.. de momento...
public lenguajePoderoso () {
          java = "poder";
       }

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:practica CU00636B
« Respuesta #5 en: 27 de Agosto 2014, 17:15 »
 De momento te recomiendo declarar todas las variables (solo las variables) de clase como private, para los métodos (setter, getters, otros...) de momento te recomiendo continuar declarándolos como public.

Mas adelante conocerás mas sobre las palabras claves public, private, protected, ext...

Espero que captes la idea.

Saludos
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

BelCrow

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 46
  • Técnico en Redes (CCNA-IT).
    • Ver Perfil
Re:practica CU00636B
« Respuesta #6 en: 27 de Agosto 2014, 17:17 »
o creo que ya entiendo mas o menos lo que decís...... segun la buena practica, todo excepto la clase debe de ir en "private" hasta que sea necesario. ejemplo..

Código: [Seleccionar]
//Rueda
public class Rueda {
    String tipo;
    double grosor;
    double diametro;
    String marca;

    public Rueda () {
        tipo="";
        grosor=0;
        diametro=0;
        marca="";
    }

    //Setters
    private void setTipo (String valorTipo) {
        tipo=valorTipo;
    }

    private void setGrosor (double valorGrosor) {
        grosor=valorGrosor;
    }

    private void setDiametro (double valorDiametro) {
        diametro=valorDiametro;
    }

    private void setMarca (String valorMarca) {
        marca=valorMarca;
    }

    //Getters
    private String getTipo () {return tipo;}

    private double getGrosor () {return grosor;}

    private double getDiamtro () {return diametro;}

    private String getMarca () {return marca;}

    //aqui se agregan los If y Else en la practica.
    private void comprobarDimensiones () {
        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");
        }

        if (diametro>1.4 && grosor<0.4 || diametro<=1.4 && diametro>0.8 && grosor<0.25){
            System.out.println ("El grosor para esta rueda es inferior al recomendado");
        }
        else{}
    }
}


aqui he realizado los cambios que me recomendaste..  hasme el favor de verlos aver si aplica...
public lenguajePoderoso () {
          java = "poder";
       }

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:practica CU00636B
« Respuesta #7 en: 27 de Agosto 2014, 18:10 »
 Al parecer te estas confundiendo y no has captado la idea:
Citar
De momento te recomiendo declarar todas las variables (solo las variables) de clase como private, para los métodos (setter, getters, otros...) de momento te recomiendo continuar declarándolos como public.
Ten en cuenta que las variables de clase, son las que declaras luego de "public class Rueda" por ejemplo, las variables de tu clase Rueda son: String tipo; double grosor; double diametro; y String marca.

Los métodos son algo diferente a las variables, en tu clase Rueda se pueden observar los métodos getters, los métodos setters y un método mas (comprobarDimensiones)

A continuación he editado tu codigo con el aspecto de diseño que debería llevar:
public class Rueda
Código: [Seleccionar]
public class Rueda
{
    private String tipo;
    private double grosor;
    private double diametro;
    private String marca;
    //Constructor
    public Rueda ()
    {
        tipo = "";
        grosor = 0.0;//Si es double, su valor debe de ser decimal, por eso se inicializa a 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 getDiamtro () {return diametro;}

    public  String getMarca () {return marca;}

    //aqui se agregan los If y Else en la practica.
    public  void comprobarDimensiones ()
    {
        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");
        }

        if (diametro>1.4 && grosor<0.4 || diametro<=1.4 && diametro>0.8 && grosor<0.25){
            System.out.println ("El grosor para esta rueda es inferior al recomendado");
        }
        else{}
    }
}
mira y compara tu código con este, fijate donde e recolocado los private y public.
y nada, no te detengas mucho a pensar el porque de esto, mas adelante aprenderas a dominar el tema
(todo a su tiempo)
Espero que ahora si captes la idea.
Saludos!
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

BelCrow

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 46
  • Técnico en Redes (CCNA-IT).
    • Ver Perfil
Re:practica CU00636B
« Respuesta #8 en: 27 de Agosto 2014, 19:29 »
ya vi donde esta colocado la diferencia... y gracias por lo del double con 0.0... ya veras que a partir de ahora veras tus sugerencias en mis siguientes codigos...
public lenguajePoderoso () {
          java = "poder";
       }

 

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