Sobre funciones y métodos

Mucha gente cuando empieza a programar, no entiende del todo este concepto de las funciones y el concepto de método, tanto porque o los profesores no son demasiado explícitos, o porque las funciones no son legibles al instante y pues en este post voy a intentar clarificar un poco eso un poco.

Primero que nada, una función no es un método, y viceversa, mucha gente confunde los términos porque en teoría tienen una aplicación parecida, pero hemos de diferenciar a la función del método con lo siguiente:

Función: Es una “acción” que se ejecuta al llamarse, y opcionalmente (y si es que ha sido definido así) con los parámetros que se le pasen (eso en ejecución) y pues por consiguiente, el trabajo que haga depende de esos parámetros o de cómo es que se llame. Por ejemplo:

Si definimos una función “Imprimir”

public void Imprimir(String cadena){

System.out.println(cadena);

}

Deberíamos ponerlo en donde lo necesitamos, de la siguiente forma:

Imprimir("Hola! a todos");

Para que imprima lo que le hemos pasado por parámetro haciendo el trabajo dependiente de eso que le pasemos!

Método: En cambio, un método siempre tiene una asociación con alguna clase, lo que muy aparte de la función de la función (valgan redundancias) va a depender tanto de los parámetros que se le pasen, como del objeto que esté operando en ese momento, osea prácticamente podríamos definir a un método, como la función dentro de un objeto, dejando en claro que todo método es una función, pero no toda función es un método. Por ejemplo:

En una clase definimos el método “Suma” de la siguiente manera:

public int suma(int y){

//la variable x es una variable declarada en el objeto supongamos,
 int x = this.x;
 int suma = x + y;
 return suma;
 }

En el main deberiamos definir el funcionamiento de esta manera:

//objetoOperacion o = new objetoOperacion()

//o.setX(10);

int suma = o.suma(20);
//Suponiendo que lo comentado arriba es correcto, deberíamos sumar un 20 al 10, osea daría un 30!
//System.out.println("La suma es: "+suma); //debe dar 30! 

Seguir leyendo …