COMO LLAMAR A UNA FUNCION DESDE EL MAIN

thames
09 de Abril del 2008
Hola a todos! me estoy introduciendo en el mundo Java y claro no me aclaro, ¿qué hago mal en el programita que os adjunto a continuación?
Quiero saber llamar a una función desde el main xa que esta función haga cosas, como por ejemplo la suma de 2+2=4

class Suma {
int resultado;
public int sum(int valor1, int valor2){
resultado=valor1+valor2;
System.out.println("resultado");
}
}

class Main{
void Main(){
Main.sum(int 2,int 2);
}
}

hadrien
09 de Abril del 2008
Primero debes hacer una instancia de tu clase y luego podrás llamar a la función:

Suma s = new Suma();
s.sum( 2, 2);

thames
09 de Abril del 2008
Hola!!
muchisimas gracias por atender mi mensaje, gracias a vuestra ayuda he conseguido hacer que mi programita no tenga fallos y compile aqui lo adjunto finalmente:

package javabasico;

public class Main {

public static void main(String[] args) {
Suma s = new Suma ();
s.sum(2,2);
}

}


class Suma {

public int sum(int valor1, int valor2){
int resultado;
resultado = valor1 + valor2;
System.out.println("resultado");
return resultado;
}

Ahora la unica pega que tengo es que en la ventana del Output en el NetBeans que es el que utilizo me aparece el siguiente mensaje:

init:
deps-jar:
Compiling 1 source file to C:Documents and SettingsAdministratorMy DocumentsNetBeansProjectsJAVA BASICObuildclasses
compile:
run:
resultado
BUILD SUCCESSFUL (total time: 1 second)

y claro yo creia que me aparecería el resultado de la suma, es decir un 4, en lugar de la palabra resultado.
¿Estoy haciendo algo mal?

thames
09 de Abril del 2008
No hace falta que me contesteis otra vez, ya lo he solucionado. Era porque tenia en el Syste.out.println la palabra resultado entre comillas jejeje. Ya me va gustando a mi esto del java. Gracias de nuevo!

jaireina
09 de Abril del 2008
Para llamar a una función que se encuentre dentro de la misma donde se encuentra el main debes escribir la el nómbre de la función seguido de un par de paréntesis que encierran los parámetros que recibe la función (si es que recibe parámetros)

Ejm.
NombreFuncion(1, valor2);
Funcion1(valor2);
Funcion3();

Es importante recalcar que si la función devuelve un valor, se debe asignar éste valor a alguna variable que sea del mismo tipo que el valor que retorna la función.

Como ejemplo te pongo el que tu propusiste en un principio:

public class Prueba {

public static void main(String [] args){
int suma;
suma = funcionQueSuma();
}

public static int funcionQueSuma(){
int resultado;
resultado = 2+2;
return resultado;
}
}


En este caso, la función: funcionQueSuma, no recibe ni ningún parámetro, pero devuelve un valor de tipo entero, el cual se guada en la variable suma del main.

Suerte