Articles

Functions

Posted by admin

en Java, todas las definiciones de funciones deben estar dentro de clases. También llamamos métodos de funciones. Veamos un ejemplo de método

public class Main { public static void foo() { // Do something here }}

foo es un método que definimos en la clase Main. Observe algunas cosas sobre foo.

  • static significa que este método pertenece a la clase Main y no a una instancia específica de Main. Lo que significa que podemos llamar al método desde una clase diferente como esa Main.foo().,
  • void significa que este método no devuelve un valor. Los métodos pueden devolver un solo valor en Java y tiene que ser definido en la declaración del método. Sin embargo, puede usar return por sí mismo para salir del método.
  • este método no obtiene ningún argumento, pero por supuesto los métodos Java pueden obtener argumentos como veremos más adelante.,

argumentos

siempre me gusta decir que los argumentos a los métodos Java se pasan por valor, aunque algunos pueden estar en desacuerdo con mi elección de palabras, me parece la mejor manera de explicar y entender cómo funciona exactamente.

By value significa que los argumentos se copian cuando se ejecuta el método. Veamos un ejemplo.,

public void bar(int num1, int num2) { ...}

Aquí hay otro lugar en el código, donde la barra se llama

int a = 3;int b = 5;bar(a, b);

puede imaginar en su cabeza que cuando bar(a, b) se ejecuta, ES como al principio de bar se escriben las siguientes dos líneas:

int num1 = a;int num2 = b;

y solo entonces se ejecuta el resto del método.

Esto significa que el a valor se copian a num1 y b valor se copian a num2., Cambio de los valores de num1 y num2 no afectará a y b.

si los argumentos eran objetos, las reglas siguen siendo las mismas, pero actúa un poco diferente. Aquí hay un ejemplo:

public void bar2(Student s1, Student s2) { ...}

y aquí es cómo lo usamos

Student joe = new Student("joe");Student jack = new Student("jack");bar2(joe, jack);

de nuevo podemos imaginar las mismas dos líneas al principio de bar2

Student s1 = joe;Student s2 = jack;

pero cuando asignamos objetos, es un poco diferente a asignar primitivas., s1 y joe son dos referencias diferentes para el mismo objeto. s1 == joe es true. Esto significa que la ejecución de métodos en s1 cambiará el objeto joe. Pero si cambiamos el valor de s1 como referencia, no afectará a la referencia joe.

métodos no estáticos

Los métodos no estáticos en Java se utilizan más que los métodos estáticos. Esos métodos solo se pueden ejecutar en objetos y no en toda la clase.,

los métodos no estáticos pueden acceder y alterar el campo del objeto.

llamar a los métodos requerirá un objeto de tipo Student.

Resumen

Leave A Comment