Blog
En Java estas funciones deben ser definidas dentro de las clases. Este es un pequeño ejemplo:
[php] public class Main {public static void foo() {
// Función de nuestro código
}
}
[/php]
Expliquemos paso a paso todas las secciones de este código.
- foo: es un método definido en la clase principal (Main).
- static: Tal como explicamos previamente, un método estático es aquel que pertenece a la clase principal, pero no es una instancia específica. Esto nos permite llamar al método desde una clase distinta sin problemas.
- void: Esto nos quiere decir que el método no devuelve valor alguno.
Argumentos o Parámetros
Los argumentos o parámetros sirven para intercambiar información con el método deseado.
Un ejemplo de un argumento puede ser:
[php]public void bar(int numero1, int numero2) {…
}[/php]
Además de esto, nuestro código debe tener una parte donde haremos un llamado a la función bar.
[php]int a = 3;int b = 5;
bar(a, b);[/php]
Al tu correr una aplicación con este código primero se ejecuta el siguiente código:
[php]bar(a, b);[/php]Y luego es que se ejecutará la parte restante que le da un valor a los enteros.
[php]int num1 = a;int num2 = b;[/php]
Lo que esto quiere decir es que el valor de a es copiado a num1 e igualmente sucede lo mismo con el valor de b y num2.
Si en algún momento llegas a cambiar los valores de num1 y num2 esto no afectará de ninguna forma los valores de a y b.
En dicho caso de que los argumentos o parámetros sean objetos, las reglas de sintaxis siguen siendo las mimas, pero no se comportan completamente igual.
[php]public void bar2(Student s1, Student s2) {…
}[/php]
Y se usa de la siguiente forma:
[php]Estudiante juan = new Estudiante(juan);Estudiante pedro = new Estudiante(pedro);
bar2(juan, pedro);[/php]
Y sucede exactamente igual que con el ejemplo anterior.
[php]Estudiante s1 = juan;Estudiante s2 = pedro;[/php]
La diferencia radica en que al tratarse de objetos la ejecución de métodos cambia al objeto. Esto es posible arreglarlo cambiando el valor de referencia.
[php]s1.setName(Otro); // El nombre de juan cambia a Otro.s1 = new Estudiante(Nombre); // s1 es un nuevo estudiante completamente diferente a juan que se llama Nombre.
// Actualmente el valor de s1 no es igual a juan.[/php]
Métodos no estáticos
Este tipo de métodos suelen ser usados más frecuentemente que los métodos estáticos.
La diferencia radica en que estos métodos solo son corridos en un objeto y no en toda la clase como pasaba anteriormente.
[php] public class Estudiante {private String nombre;
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}[/php]
Y además al llamar métodos necesitarás un objeto.
[php]Estudiante s = new Estudiante();s.setNombre("Daniel");
String nombre = s.getNombre();
Estudiante.setNombre("Bob"); // No funcionará
Estudiante.getNombre(); // No funcionará[/php]
Ejercicio
Usando el código proporcionado genera el método printFullName para que genere el nombre completo de uno de los estudiantes.
[php] class Student {private String firstName;
private String lastName;
public Student(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
// Tu código va aquí
}
public class Main {
public static void main(String[] args) {
Student[] students = new Student[] {
new Student("Morgan", "Freeman"),
new Student("Brad", "Pitt"),
new Student("Kevin", "Spacey"),
};
for (Student s : students) {
s.printFullName();
}
}
}[/php]
Si has llegado hasta aquí, enhorabuena, pasa a la siguiente lección:
[…] vez completado tu ejercicio y asimilada la lección es hora de pasar a la siguiente parte de este curso donde hablaremos de las […]
[…] Funciones en Java […]