Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/10/2007, 13:51
Avatar de chuidiang
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