Foros del Web » Programación para mayores de 30 ;) » Java »

Duda principiante con sentencia Return

Estas en el tema de Duda principiante con sentencia Return en el foro de Java en Foros del Web. saludos antes de nada. estoy comenzando a estudiar java y a medida que voy siguiendo el tocho de libro voy practicando haciendo ejemplos pequeños. el ...
  #1 (permalink)  
Antiguo 30/10/2007, 13:12
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 7 meses
Puntos: 0
Duda principiante con sentencia Return

saludos antes de nada.
estoy comenzando a estudiar java y a medida que voy siguiendo el tocho de libro voy practicando haciendo ejemplos pequeños.
el hecho es que me he quedado un poco atascado intentando comprender la función de la sentencia return con un ejemplo y tambien me estoy haciendo un poco lio con las clases y los objetos.
he intentado hacerme un ejemplo para comprenderlo mejor pero creo que lo estoy haciendo mal y no me aclaro ..tampoco los ejemplos que encuentro no son lo bastante simples como para mostrar de manera facil la funcion de la sentencia return , y la interaccion entre clases y objetos.

a ver si alguien me ayuda con este ejemplo y me corrige en alguna averración que este haciendo.

el codigo es el siguiente:

Código:
class Cuadrado {
	static int alto=2, ancho=3;
	static int area;
	//clase con sus variables inicializadas

public int area(){
                area=alto*ancho;
		return area;
	        }
//objeto de la clase Cuadrado que calcula area con los valores de las varibles de la //clase y devuelve valor entero de area de la operacion

public static void main(String args[]){
		System.out.println("valor de area= "+area);
	        }
//objeto de la clase Cuadrado que imprime en pantalla valor del area del cuadrado 
	
}
lo que he intentado es que se retorne el valor de area calculado con los valores de las variables declaradas en la clase coche y que despues ese valor retornado sea utilizado por otro objeto para imprimir el resultado

pero al compilar me sale
Cita:
valor de area=0
en vez de salirme..
Cita:
valor de area=6
en los apuntes de java cuando comentan la sentencia return todo lo pintan muy facil incluso mas simple que esto , pero a la hora de la verdad, de practicar la mayoria de cosas no se pueden hacer de una manera tan simple.

agradeceria muchisimo que alguien entendido me explicase que estoy haciendo mal en el ejemplo y como lo tendria que hacer para conseguir el resultado deseado y de paso asi comprender de una vez la sentencia return y la relacion entre clases y objetos.
  #2 (permalink)  
Antiguo 30/10/2007, 13:51
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: Duda principiante con sentencia Return

Hola:

El area la calculas en el método area(), al cual no llamas nunca, por lo que el area no se calcula.

Tu método main() debería ser así

Código:
public static void main(String args[]){
   // Instancias la clase para tener acceso a sus métodos
   Cuadrado c = new Cuadrado();
  
   // Llamas al método area() para que haga el cálculo
   c.area();

   // Escribes el resultado que ya se ha calculado.
   System.out.println("valor de area= "+area);
	        }
Más temas:

Los static puedes acceder a ellos sin hacer new. Por eso, en el System.out puedes acceder a "area" aunque no hayas hecho el new. De todas formas, los static se usan para cosas muy concretas y aunque son más cómodos, no deberías usarlos.

Además, el return aunque lo pones, no lo estás usando, puesto que luego accedes directamente al valor de "area" para escribirlo en pantalla en vez de coger el valor del return.

El código podrías hacerlo así, de una forma un poco más elegante.

Código:
class Cuadrado {
        // Los atributos ya no son static.
	int alto=2, ancho=3;
	int area;

public int area(){
                area=alto*ancho;
		return area;
	        }

public static void main(String args[]){
   Cuadrado c = new Cuadrado();
  
  // Aquí se llama al método c.area(). El return de ese método es el que
  // recogerá System.out e imprimirá.             
  System.out.println("valor de area= "+ c.area());
   }
}
Quizás te quede más claro el main poniendo una varible intermedia, para que veas la función del return

Código:
Cuadrado c = new Cuadrado();
int resultado = c.area();  // Lo que devuelve return se guarda en resultado
System.out.println("valor de area= "+ resultado);
Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 30/10/2007, 13:59
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Duda principiante con sentencia Return

muchisimas gracias...tan solo ver por encima tu claridad al responder y como lo expones se queme solucionará el lio de la cabeza .
ahora me lo leo mas detenidamente . y lo pongo en practica

como jode empezar con un lenguaje y quedarse estancado en una xorrada...pero menos mal que hay foros como este donde te pueden hechar un cable ..

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:41.