Fragmento de una conferencia con un mentor como parte del curso de Codegym University. Inscríbete al curso completo.


"¿Ya estás aquí, amigo? Sé que ya has aprendido muchos comandos de Java. ¡Casi has llegado a mi nivel!"

"¿Es eso cierto, Diego?"

"Por supuesto que no, ja, ja. Todavía tienes mucho que estudiar y aprender. Aún así, ya sabes lo suficiente como para escribir programas bastante complejos. 10, 20, 30 líneas de código en un programa no es un programa muy grande, ¿bien?"

"Supongo que tienes razón. Especialmente si pones llaves en líneas separadas".

"Pero un programa de más de 100 líneas, ahora eso es grande. Incluso a nosotros, los robots, nos cuesta bastante entender ese código. ¿Qué piensas? ¿Hay algo que puedas hacer para simplificar de alguna manera la escritura y lectura de programas que tienen mucho código?

"¡Eso espero sinceramente!"

"Tus esperanzas no son en vano. Es posible simplificar los programas, y los métodos están aquí para ayudarnos con esto. A veces se les llama funciones ".

"Funciones, métodos... Uh, ¿qué son?"

"En pocas palabras, un método es un grupo de comandos que tiene un nombre único . En otras palabras, solo ponemos varios comandos en un grupo y le damos un nombre único. Y eso es todo, boom, tenemos un método. La mayoría a menudo, estos comandos se agrupan de acuerdo con alguna lógica para resolver una tarea pequeña y específica, por ejemplo, 'un método para imprimir líneas de un archivo', o 'un método para elevar un número a un exponente'.

"Entonces, ¿dividimos el programa en métodos?"

"Sí, y simplifica el código.

Ejemplo:

sin un método con un metodo
class Solution
{
   public static void main(String[] args)
   {
     System.out.print("Wi-");
     System.out.println("Fi");
     System.out.print("Wi-");
     System.out.println("Fi");

     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void main(String[] args)
   {
     printWiFi();
     printWiFi();
     printWiFi();
   }
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}

"En el programa de la columna de la izquierda, repetimos el mismo código tres veces; lo hicimos intencionalmente para ilustrar un punto. Pero en el programa de la derecha, movimos el código repetido a un método separado y le dimos un nombre único: printWiFi.

Y en lugar del código reubicado, llamamos al printWiFi()método 3 veces.

"Cuando se ejecuta el programa en la columna de la derecha, cada vez que printWiFi()se ejecuta el método, se ejecutan todos los comandos dentro del printWiFi()método. Acabamos de crear un nuevo comando (método), combinando varios comandos en un solo grupo.

"Cualquier código se puede dividir en métodos separados. Esto se hace para simplificar las cosas: la idea es que es mejor tener muchos métodos pequeños que uno grande.

"Es una gran idea dividir un programa en métodos.

"Pronto recordarás con asombro cómo solías escribir programas sin crear tus propios métodos".

"¡Estoy listo para escuchar e intentar escribir métodos! Solo dime cómo hacerlo".

Declarar un método en Java

"¿Cómo podemos declarar el método más simple? He aquí cómo:

public static void name()
{
  method body
}

Donde namees el nombre único del método y method bodyrepresenta los comandos que componen el método. El significado de las palabras public, static, y voidse discutirá más adelante.

"Después de haber creado un método, podemos llamarlo en nuestros otros métodos. Una llamada de método se ve así:

name();

"¿Dónde nameestá el nombre único del método que queremos llamar, es decir, el método cuyos comandos queremos ejecutar cuando lleguemos a la llamada del método.

"Cuando el programa llega a la llamada al método, simplemente ingresa al método, ejecuta todos sus comandos, regresa al método original y continúa con la ejecución.

"Y ahora, Amigo, mira con nuevos ojos los comandos que ya has aprendido. Por ejemplo, . ¿Se te ocurre algo sobre lo que realmente es esto?"System.out.println()

"¿Estás diciendo que todos estos comandos son solo métodos escritos por otros programadores?"

"No todos, pero muchos de ellos. ¡Sí, exactamente! Otros los escribieron para hacernos la vida más fácil".

" public static void main(String[] args)También es un método... ¡Ahora tiene más sentido!"

"¡Por supuesto que sí! ¡Es programación! Resulta que el método principal, el alfa y el omega del programa, puede contener llamadas a otros métodos:

Código Nota
class Solution
{
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}




Llamamos al print10TimesWiFi()método


Declaramos el print10TimesWiFimétodo


Llamamos al printWiFi() método 10 en un bucle


Declaramos el printWiFimétodo

Mostramos " Wi-Fi" en la pantalla

Datos sobre los métodos

"He reservado algunos datos útiles sobre los métodos para ti. Aquí, disfruta:

Hecho 1. Un método siempre es parte de una clase.

Un método solo puede declararse en una clase. Un método no se puede declarar dentro de otro método. Un método no se puede declarar fuera de una clase.

Hecho 2. El nombre de un método no tiene un significado sagrado

No importa cómo se llamen los métodos, eso no afecta nada. El método principal es un método como todos los demás. Es solo que este nombre fue elegido para el método desde el cual la máquina Java comenzará la ejecución del programa. No hay nada mágico en ello. Dicho todo esto, es mejor elegir nombres de métodos que al menos dejen un poco claro para qué sirven. Hablaré de esto un poco más tarde.

Hecho 3. El orden de los métodos en una clase no importa

Puede escribir sus métodos en una clase en cualquier orden; esto no afectará la ejecución del programa de ninguna manera. Ejemplo:

Código
class Solution
{
   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   public static void main(String[] args)
   {
     printWiFi10Times();
   }
}

Hecho 4. Las variables dentro de un método no están relacionadas de ninguna manera con las variables de otros métodos

Lo que pasa en Las Vegas se queda en Las Vegas. Y las variables declaradas dentro de un método permanecen dentro del método.

Las variables con los mismos nombres se pueden declarar en dos métodos adyacentes, y estas variables no están relacionadas entre sí de ninguna manera.

nombres de métodos

"Así que... prometí hablarte sobre los nombres de los métodos. Hace tiempo que se sabe que los dos problemas más difíciles en la programación son elegir los nombres correctos para los métodos y elegir los nombres correctos para las variables".

"¡Nunca pensé que fuera tan difícil!"

"Simplemente no sabía mucho sobre el código vago de otros, donde las variables y los métodos tienen nombres arbitrarios. Solo intente descifrar ese código. De hecho, ha surgido casi toda una ciencia sobre cómo nombrar correctamente los métodos. Y cada lenguaje de programación tiene sus propios estándares.

"En Java, se acostumbra seguir estos principios:

Principio 1. El nombre de un método debe describir brevemente lo que hace el método.

Luego, otro programador que lea su código puede confiar en el nombre del método para adivinar qué hace el código. Él o ella no necesitará mirar el código de los métodos llamados cada vez. Y el propósito de los métodos es más fácil de recordar.

Por ejemplo, se usa para 'poner el programa en suspensión' y se usa para 'leer el siguiente entero'. Conveniente, ¿eh?Thread.sleep()Scanner.nextInt()

Principio 2. El nombre de un método puede tener varias palabras.

Sin embargo, existen varias limitaciones al hacer esto:

  • No puede tener espacios en el nombre de un método: todas las palabras se escriben juntas.
  • Cada palabra está en mayúscula, excepto la primera.
  • El nombre de un método siempre comienza con una letra minúscula

Recuerda el print10TimesWiFimétodo. ¿Qué significa ese nombre? "Mostrar la palabra 'WiFi' 10 veces". No debe incluir muchas palabras en el nombre de un método: el nombre debe reflejar su esencia misma.

Este estándar para nombrar métodos se llama CamelCase (Las letras mayúsculas son como las jorobas de un camello).

Principio 3. El nombre de un método comienza con un verbo.

Un método siempre hace algo, por lo que la primera palabra en el nombre de un método siempre es una acción.

Aquí hay algunos nombres incorrectos para los métodos: home, cat, car, train, ...;

Algunos buenos nombres son: run, execute, print, read, write, ...

Principio 4. El nombre de un método utiliza únicamente letras y números latinos.

Java tiene un excelente soporte para diferentes lenguajes. Puede escribir los nombres de las variables, los métodos y las clases en ruso y en chino. ¡Todo funcionará!

¡Pero! ¿Imaginas cuánto tiempo tendrías que estudiar Java si el System.out.println()método estuviera escrito en chino?

Mucho más tiempo que ahora, ¿verdad? Ese es el primer punto.

En segundo lugar, muchos equipos de desarrollo de software son internacionales. Los programadores de todo el mundo utilizan una gran cantidad de bibliotecas de Java.

Por lo tanto, se recomienda utilizar solo letras y números latinos en los nombres de los métodos.

Importante:

El nombre de un método debe comenzar con una letra (no puede comenzar con un número).

"Estos son todos los principios básicos que rigen la nomenclatura de métodos en Java. La lección ha terminado ahora. ¡Ve a resolver tareas!"

"¡Ya estoy corriendo, Diego!"


Fragmento de una conferencia con un mentor como parte del curso de Codegym University. Inscríbete al curso completo.