Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: MasterOfWaves en 04 de Junio 2016, 12:49
-
Hola, os dejo mi ejercicio CU00636B del tutorial de programación Java de aprender a programar.
Para los métodos Setters, a mi me gusta utilizar return, para que nos devuelva el nuevo valor que añadimos.
Ya me decís.
Mil gracias.
// Empezamos publicando la clase rueda y definiendo los sus atributos
public class Rueda {
private String tipo;
private double grosor;
private double diametro;
private String marca;
// Ahora pasamos a definir el constructor
public Rueda () {
tipo = "";
grosor = 0.00;
diametro = 0.00;
marca = "";
}
//Creamos los métodos Setters
public String setTipo (String valorTipo){
tipo = valorTipo;
return tipo;
}
public double setGrosor (double valorGrosor){
grosor = valorGrosor;
return grosor;
}
public double setDiametro (double valorDiametro){
diametro = valorDiametro;
return diametro;
}
public String setMarca (String valorMarca){
marca = valorMarca;
return marca;
}
// Creamos los métodos getters
public String getTipo (){
return tipo;
}
public double getGrosor (){
return grosor;
}
public double getDiametro (){
return diametro;
}
public String getMarca (){
return marca;
}
// Método del apartado a)
public void comprobarDimensionesA (){
if (diametro > 1.40) {
System.out.println ("La rueda es para un vehículo grande");
}
else if (diametro <= 1.40 && 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");
}
}
// Método del apartado b)
public void comprobarDimensionesB () {
if ((diametro > 1.40 && grosor < 0.40) || (diametro <= 1.40 && diametro > 0.80 && grosor < 0.25)) {
System.out.println ("El grosor de la rueda es inferior al recomendado");
}
else {
System.out.println ("La rueda es apta");
}
}
}
-
Buenas, MasterOfWaves.
Tienes bien resuelto el ejercicio. No sé si haces bien en poner la sentencia "return" en un método void, puesto que dicho método no es una función sino un procedimiento. Sólo las funciones devuelven valores.
Saludos :)
-
Hola Dimiste,
Gracias por contestarme. En realidad es que no utilizo método void, de esta manera al establecer el nuevo valor de la variable, el programa te devuelve dicho valor, sino, con el método void no te avisa (a menos que hayas dicho que lo pinte System.out.println).
Parece que de ambas maneras funciona bien, pero estoy empezando y me gustaría saber que es lo correcto (para aprender bien jeje).
Muchas gracias otra vez.
Saludos!!!
-
Tienes razón, no me había fijado que no utilizar métodos "void".
Personalmente, yo, del curso Java desde cero, aprendí que para cada propiedad se establecen dos métodos. Uno "void", donde se modifica el valor de la propiedad y otro de algún tipo (string, double, char, float, etc.) donde se recupera dicho valor. En todos los ejemplos se ha utilizado esta técnica.
Saludos :)
-
Hola.
Repasando estas tres entregas del curso, quedarán las dudas despejadas:
https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=430:metodos-en-java-tipo-procedimiento-void-y-tipo-funcion-return-definicion-invocacion-cu00624b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=436:tipos-de-metodos-y-constructores-en-java-metodos-con-parametros-y-metodos-sin-parametros-cu00625b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=440:tipos-de-metodos-en-java-metodos-consultores-o-de-acceso-getters-y-modificadores-setters-cu00626b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
Por lo cual, los métodos que has usado, no se puede decir que sean setters, porque realizan más operaciones de las que debe hacer un método set.
Los métodos setters cambian el valor de uno o varios atributos de un objeto.
Saludos. ;D
-
Pedro, Dimiste;
Muchas gracias por vuestras aportaciones, todo claro!!
Un setter es un setter, nada de return ;-)
Saludos!