Curso gratuito de Java. Regístrate para hacer un seguimiento de tu progreso →

Java: Creación (definición) de un método

La definición de métodos propios simplifica en gran medida la escritura y el mantenimiento de programas. Por ejemplo, los métodos permiten combinar operaciones compuestas en una sola.

Por ejemplo, enviar un correo electrónico en un sitio web es un proceso bastante complejo que implica interactuar con Internet. Se puede definir un método y ocultar toda la complejidad detrás de una sola construcción simple:

// Lugar donde se encuentra el método
import com.example.Mailer;

var email = "support@hexlet.io";
var title = "Ayuda";
var body = "He escrito una historia de éxito, ¿cómo puedo obtener un descuento?";

// Mailer - nombre de la clase en la que se define el método send()
// Una pequeña llamada - y mucha lógica interna
Mailer.send(email, title, body);

Este tipo de llamada realiza bastante lógica interna. Se conecta al servidor de correo, forma una solicitud correcta basada en el encabezado y el cuerpo del mensaje, y luego lo envía todo, sin olvidar cerrar la conexión.

Cómo crear métodos

Crearemos nuestro primer método. Su tarea es mostrar la fecha actual en la pantalla:

Hoy es: 2021-10-25
import java.time.LocalDate;

// Definición del método
// La definición no llama ni ejecuta el método
// Solo estamos diciendo que ahora existe este método
public class App {
    public static void showCurrentDate() {
        // Método incorporado en Java para obtener la fecha y hora actual
        var currentDate = LocalDate.now();
        var text = "Hoy es: " + currentDate;
        System.out.println(text);
    }
}

// Llamada al método
// Es obligatorio especificar el nombre de la clase
App.showCurrentDate(); // => Hoy es: 2021-10-25

https://replit.com/@hexlet/java-basics-methods-definition

La definición de un método en Java implica muchas acciones que iremos viendo gradualmente.

Se pueden dividir en dos grupos:

  • Lo que afecta el funcionamiento del propio método
  • Cómo se ve este método fuera de la clase

La visibilidad está determinada por la palabra public. Esto permite llamar a los métodos desde fuera de la clase, como en el ejemplo anterior. Además de public, existe private, que se explica en Hexlet en el curso de POO en Java.

El funcionamiento del método está determinado por:

  • static - desvincula el método del objeto y permite llamarlo directamente desde la clase
  • void se utiliza si el método no devuelve nada. Por ejemplo, esta es la definición del método System.out.println(). Si el método devuelve algún dato, en lugar de void se especifica el tipo de dato devuelto

A diferencia de los datos normales, los métodos realizan acciones, por lo que sus nombres casi siempre deben ser verbos: "construir algo", "dibujar algo", "abrir algo".

Todo lo que se describe dentro de las llaves {} se llama cuerpo del método. Dentro del cuerpo se puede escribir cualquier código. Considéralo como un pequeño programa independiente, un conjunto de instrucciones arbitrarias.

El cuerpo se ejecuta exactamente en el momento en que se inicia el método. Además, cada llamada al método ejecuta el cuerpo de forma independiente de otras llamadas. Por cierto, el cuerpo puede estar vacío:

// Definición mínima del método
public class App {
    public static void noop() {
        // Aquí podría haber código, pero no lo hay
        // Presta atención a la indentación
        // Para mayor legibilidad, cualquier código dentro del cuerpo se desplaza a la derecha en 4 espacios
    }
}
App.noop();

El concepto de "crear un método" tiene muchos sinónimos: "implementar", "definir" e incluso "implementar". Todos estos términos se encuentran en la práctica diaria en el trabajo.

Tarea

Implementa un método estático llamado printMotto() que muestre en la pantalla la frase Winter is coming.

// La clase App ya está definida
App.printMotto(); // => Winter is coming

Para que podamos llamar a este método desde fuera, debemos marcarlo no solo con la palabra clave static, sino también con public.

En los ejercicios en los que se requiere implementar un método, no es necesario llamar a ese método. Las pruebas automatizadas se encargarán de llamar al método y comprobar su funcionalidad. El ejemplo de llamada anterior se muestra solo para que entiendas cómo se utilizará tu método.

¿El ejercicio no pasa la prueba, qué debo hacer? 😶

Si te quedaste atascado, es el momento perfecto para hacer una pregunta en las "Discusiones".
* Asegúrate de incluir la salida de las pruebas. Sin ella, es casi imposible entender qué está mal, incluso si muestras tu código. Los programadores tienen dificultades para ejecutar el código en su mente, pero casi siempre es posible entender a dónde mirar a partir del error que recibiste.

Mi código funciona en mi entorno, pero no aquí 🤨

Las pruebas están diseñadas de manera que verifican la solución de diferentes maneras y con diferentes datos. A menudo, una solución funciona con ciertos datos de entrada pero no con otros. Para entender este punto, revisa la pestaña "Pruebas" y presta atención a los mensajes de error, que suelen contener pistas.

Mi código es diferente a la solución del profesor 🤔

Esto es normal 🙆. En programación, una tarea puede tener muchas soluciones diferentes. Si tu código pasa la prueba, cumple con los requisitos de la tarea.

En raras ocasiones, la solución puede estar ajustada para pasar las pruebas, pero esto suele ser evidente.

Leí la lección, pero no entendí nada 🙄

Crear materiales de aprendizaje comprensibles para todos es bastante difícil. Hacemos nuestro mejor esfuerzo, pero siempre hay margen para mejorar. Si encuentras material que no entiendes, describe el problema en las "Discusiones". Es ideal si puedes formular los aspectos que no entiendes en forma de preguntas. Por lo general, necesitamos unos días para hacer mejoras.

Por cierto, tú también puedes contribuir a mejorar los cursos: en la parte inferior hay un enlace al código fuente de las lecciones, que se puede modificar directamente en el navegador.

Consejos útiles


¿Encontraste un error? ¿Quieres añadir algo? Las solicitudes de extracción son bienvenidas. https://codica.la/errores
Si te encuentras con dificultades y no sabes qué hacer, pregunta en nuestra gran y amigable comunidad