Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: jorge1290 en 25 de Julio 2014, 08:19
-
Hola, quiero saber si el código es correcto segun el ejercicio y si hay cosas que debo cambiar o mejorar, les agradezco el apoyo, me ha sido de gran ayuda, a continuación dejo el ejercicio a realizar y el código.
EJERCICIO
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”.
public class Rueda{
String tipo;
double grosor;
double diametro;
String marca;
//constructor
public Rueda (){
tipo ="";
grosor = 0;
diametro = 0;
marca = "";
}
//metodos set
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;
}
//Metodos get
public String getTipo (){return tipo;}
public double getGrosor (){return grosor;}
public double getDiametro (){return diametro;}
public String getMarca (){return marca;}
//Metodo comprobarDimensiones
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");
}
}
-
Hola jorge!
he verificado tu código y se puede decir que cumple con lo pedido por el ejercicio.
puntos a comentar: Siempre que declares variables en una clase, estas se deben declarar como variables privadas de la clase. Ejemp: private String tipo;
Dos puntos a comentar en la siguiente fracción de tu código:
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");
Primero: todos los paracentesis que están dentro del if(...) se podría decir que están de mas, lo que le resta claridad a tu código, pienso que podrías no incluirlos.
Segundo: si te fijas en esta fracción del código luego del if(...) no as incluido las llaves {instrucciones} que se supone contendrán las instrucciones a ejecutar. Aunque el código compila y trabaja sin errores, esto podría ser una mala practica.
he editado esta fracción de tu código y es así como pienso debería lucir:
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");
}Espero captes la idea.
Salu2!
-
hola Sniper!
muchas gracias por los concejos me han ayudado mucho,
eso de poner parentesis dentro del If es una duda que tenia y me haz ayudado a aclarar esa duda, lo de las llaves {} no me habia dado cuenta, pero muchas gracias por hacerlo notar porque asi ya tendre mas en cuenta estos detallito que son importantes corregir :)
-
Ojo!!
En ocasiones si nos sera necesario incluir paréntesis dentro de un if(). Un ejemplo seria este:
public class Parentesis
{
public boolean utilidadDeParentesis()
{
if(1+2*3 == 9)
{
return true;
}
else
{
return false;
}
}
}
en este código intento decirle a java que si 1+2 = 3 y 3*3 = 9 devuelva true, si se compila el código y se ejecuta el método podremos notar que devuelve false, esto se debe a que java interpreto la sintaxis de una forma distinta a la esperada por mi, java a interpretado: 2*3 = 6 y 1+6 = 7 osea 1+6 = 7, si cambiamos el 9 por un 7 entonces si devolverá true.
La forma correcta para que devuelva true si la operacion es igual a 9 la obtendríamos con la ayuda de unos paréntesis:
public class Parentesis
{
public boolean utilidadDeParentesis()
{
if((1+2)*3 == 9)
{
return true;
}
else
{
return false;
}
}
}y esto se interpreta así: 1+2 = 3 y 3*3 = "9"
java primero calcula lo que este dentro de los paréntesis y luego continua con lo demás.
Te hago este aclarando para que tengas en cuenta que usar los paréntesis es circunstancial y de la circunstancia no requerirlos es preferible mantener un código limpio y no incluirlos.
Salu2!