Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: jonathan en 24 de Abril 2014, 22:33
-
hola! estoy copiando de forma manual el codigo de:
https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=481:if-else-if-else-if-java-estructura-o-esquema-de-decision-condicional-ejemplos-de-uso-ejercicios-cu00636b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
en el bluj... pero me arroja error illegal start of type...ayuda porfavor:
public class Prueba{
int desplazamientox;
int desplazamientoy;
public Prueba () {
desplazamientox = 0;
desplazamientoy = 0;
}
//metodos setters
public int setDESPLAX (int valorDESPLAX){
desplazamientox = valorDESPLAX;
}
public int setDESPLAY (int valorDESPLAY){
desplazamientoy = valorDESPLAY;
}
if (desplazamientox == 0 && desplazamientoy ==1){
System.out.println("Se procede a bajar el personaje 1 posicion");
}
else if (desplazamientox == 1 && desplazamientoy==0){
System.out.println("Se procede a mover el personaje 1 posicion a la derecha");
}
else if (desplazamientox == -1 && desplazamientoy==0){
System.out.println("Se procede a mover el personaje 1 posicion a la izquierda");
}
else{
System.out.println("Los valores no son validos");
}
}
-
Qué tal, tienes varios problemas en este código:
public int setDESPLAX (int valorDESPLAX){
desplazamientox = valorDESPLAX;
}
No puedes poner public int porque esto significaría que el método devuelve un int y tendrías que poner una sentencia return, pero el método no es para devolver algo, sino para establecer el valor de un atributo, para especificar que no se devuelve nada tienes que poner void, sería:
public void setDESPLAX (int valorDESPLAX){
desplazamientox = valorDESPLAX;
}
Lo mismo con el otro método.
Por otro lado el código del if no puede estar "suelto", el código tiene que estar dentro de algo (de un constructor, o de un método...) Por tanto tendrías que escribir el método para meter el código dentro:
public void comprobarDesplazamiento () {
if (desplazamientox == 0 && desplazamientoy ==1){
System.out.println("Se procede a bajar el personaje 1 posicion");
}
else if (desplazamientox == 1 && desplazamientoy==0){
System.out.println("Se procede a mover el personaje 1 posicion a la derecha");
}
else if (desplazamientox == -1 && desplazamientoy==0){
System.out.println("Se procede a mover el personaje 1 posicion a la izquierda");
}
else{
System.out.println("Los valores no son validos");
}
}
-
mil gracias!!!!! ya le estoy entendiendo!!!
-
Hola, aquí un ejemplo de mi ejercicio de rueda resulto, te servirá de guía.
Si algo esta mal favor de corregir.
public class Rueda{
String tipo;
double grosor;
double diametro;
String marca;
public Rueda(){
tipo = "Racing";
marca = "Michelling";
grosor = 1.4;
diametro = 1.8;
}
public void setDiametro (double valorDiametro){
diametro = valorDiametro;
if (diametro > 1.4){
System.out.println("La rueda es para un vehiculo grande");
}
else if (diametro <= 1.4 && diametro > 0.8){
System.out.println("La rueda es para un vehiculo mediado");
}
else {
System.out.println("La rueda es para un vehiculo pequeño");
}
}
public void setDiametro1 (double valorDiametro1, double grosor1 ){
diametro = valorDiametro1;
grosor = grosor1;
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 menor del recomendado");
}
}
}
-
El ejercicio deberías replantearlo teniendo en cuenta los siguientes aspectos:
- En el constructor de una clase los atributos normalmente se deben inicializar a valores que indiquen que el objeto acaba de ser creado (y que no se han establecido valores para sus atributos). Tal y como tú lo indicas todas las ruedas que se creen van a ser inicialmente de marca Micheling, en vez de eso sería más aconsejable que la marca al crear el objeto sea "Desconocida". Luego la marca se establecerá usando el método setMarca, precisamente para eso es para lo que sirve el método setMarca, para establecer el valor de la marca. Lo mismo para el tipo, grososr, diametro, etc.
- Los nombres de los métodos deben indicar qué es lo que hace el método. Por ejemplo un método como public void setDiametro1 (double valorDiametro1, double grosor1 ) parece indicar que este método sirve para establecer (set) el diámetro, pero luego te encuentras que el método sirve para otra cosa. Por tanto sería más lógico que el nombre de este método describa lo que hace el método, si no induce a confusión.
Igualemente un método sólo debe servir para hacer una cosa, no para hacer varias cosas que no guarden relación. Por tanto en public void setDiametro (double valorDiametro) únicamente debería establecerse el valor del diámetro, y no hacer comprobaciones de otro tipo. Esas comprobaciones deberían ir en un método independiente que no se llame setAlgo porque set es para establecer valores, no para otra cosa. Salu2