Métodos en Java
Escribe un método llamado ring que imprima una palabra: ding. Pon esas líneas de impresión bajo static void ring() con paréntesis vacíos. Dentro de main escribe solo ring(); — el nombre, luego paréntesis vacíos, luego un punto y coma. Compila y ejecuta. La pantalla debe mostrar una línea: ding. main no guarda el println de ding. El método lo guarda. Esa separación es lo que enseña esta página.
Líneas que viven bajo ring
Hasta ahora, casi todo el trabajo de impresión estaba directo dentro de main. Eso sigue valiendo. Un método da a esas mismas líneas un nombre propio. Escribes las líneas una vez bajo ese nombre. Luego main las pide escribiendo el nombre como llamada.
Crea un archivo de programa pequeño llamado Chime.java. El public class de la primera línea debe coincidir con el nombre del archivo: public class Chime. No dejes un nombre de clase antiguo Pack o Skip en este archivo; el compilador espera que el nombre de la clase y el del archivo coincidan.
Fuera de main, todavía dentro de las llaves de la clase, escribe:
static void ring() {
System.out.println("ding");
}
La palabra static se queda en esta forma de principiante para que main pueda llamar a ring sin construir un objeto. La palabra void significa que este método no devuelve un valor al que llama — solo ejecuta su cuerpo. El nombre ring es la etiqueta que escribirás en main. Los paréntesis vacíos () significan que el método de esta página no recibe valores. Las llaves guardan el cuerpo. System.out.println("ding"); escribe las cuatro letras d-i-n-g. Guarda el archivo antes de compilar.
Chime.java que compilas
Aquí está el programa pequeño completo de esta página. main guarda solo la llamada. ring guarda la impresión.
public class Chime {
public static void main(String[] args) {
ring();
}
static void ring() {
System.out.println("ding");
}
}
Desde la carpeta que tiene Chime.java, ejecuta javac Chime.java. Cuando paréntesis, llaves y puntos y coma coinciden, javac no escribe ninguna línea propia. Luego ejecuta java Chime — no java Chime.java. Quita el final .java del segundo comando. Los mismos dos comandos funcionan en Windows y en macOS; esta página no pide una ortografía de shell distinta para ningún sistema. El programa debe imprimir una línea y parar: ding. No debe pedirte que escribas. Si la terminal espera entrada del teclado, aún queda una llamada nextLine de un ejercicio anterior en el archivo. Borra esa llamada y conserva ring(); en main más el método ring de arriba. Una línea incorrecta en pantalla no significa que necesites reinstalar el JDK.
Recorre la ejecución una vez en orden. Java empieza en main. La única sentencia en main es ring();. Esa llamada salta al método ring. Dentro de ring, println escribe ding. Luego ring termina, y en main no queda nada, así que el programa acaba. En esta página no pusiste System.out.println("ding"); dentro de main. Lo pusiste bajo ring y lo pediste por nombre. Si la pantalla muestra ding, la llamada llegó al cuerpo. Si la pantalla queda en blanco tras una compilación limpia, main nunca llamó a ring, o main aún tiene solo llaves vacías sin llamada dentro.
Llama a ring desde main más de una vez
Cambia solo main para que llame al mismo método dos veces:
public static void main(String[] args) {
ring();
ring();
}
Deja el método ring tal cual. Compila y ejecuta otra vez: javac Chime.java, luego java Chime. La pantalla debe mostrar dos líneas, cada una con ding. La primera llamada ejecuta el cuerpo una vez. La segunda llamada ejecuta el mismo cuerpo otra vez. Esa reutilización es la razón de poner nombre a las líneas. No copiaste println una segunda vez bajo ring. Escribiste una segunda llamada en main.
Si quitas el segundo ring(); y dejas solo una llamada, la pantalla vuelve a un solo ding. La definición del método no imprime por sí sola. Solo una llamada desde main (o más adelante desde otro método) ejecuta el cuerpo. Un archivo que define ring pero nunca lo llama desde main puede compilar y aun así mostrar pantalla en blanco al ejecutar java Chime, porque main no tiene nada que hacer.
Piezas del encabezado de un método
En esta página el encabezado es static void ring(). Léelo de izquierda a derecha. static permite que main llame al método en esta forma de principiante. void significa que no vuelve ningún valor por la llamada. ring es el nombre. () van vacíos a propósito: esta sesión no pasa palabras ni números al método. La página siguiente, parameters, pone nombres dentro de esos paréntesis. La página de después, return, cambia void cuando necesitas un valor de vuelta. Guarda las dos para más adelante. Hoy bastan los () vacíos y void.
📊 Pieza del encabezado en esta página
| Pieza | En esta página |
|---|---|
| static | main puede llamar a ring sin un objeto |
| void | ring no devuelve un valor |
| ring | el nombre que escribes en la llamada |
| () | en esta página no entran valores |
| { ... } | el cuerpo que imprime ding |
La llamada en main debe coincidir exactamente con el nombre: ring(); con r minúscula, paréntesis vacíos y un punto y coma. Escribir Ring(); con R mayúscula es otro nombre para Java. Escribir ring sin () no es una llamada en esta forma. Escribir System.out.println("ring"); imprime las cuatro letras de la palabra ring; no ejecuta el cuerpo del método. Conserva la llamada como ring(); cuando quieras ding en pantalla.
Un resto frecuente es una demo antigua de Pack con for-each que sigue sentada en main junto a la llamada nueva. Entonces la pantalla puede mostrar 2, 4 y 6, o red y blue, en lugar de ding — o ambos tipos de líneas mezclados. Limpia main hasta las llamadas ring(); que necesita esta lección. Otro lío es meter el método dentro de las llaves de main. Los métodos de esta página se sientan dentro de la clase, al lado de main, no anidados dentro de main. javac no trata un método enterrado dentro de main como el ring que llamas. Cierra las llaves de ring antes de que termine main, y las llaves de main antes de que termine la clase, para que cada bloque posea solo sus propias líneas.
Listo para las páginas siguientes
Puedes escribir static void ring(), poner líneas println en sus llaves y llamar a ring() desde main para que la pantalla muestre ding. Llamar dos veces imprime ding dos veces sin copiar el cuerpo. Los paréntesis vacíos y void se quedan en esta página a propósito. parameters pondrá valores dentro de los paréntesis. return permitirá que un método devuelva un número o texto a main. Esas son las dos páginas siguientes después de esta.
🧠 Pon a Prueba tu Conocimiento
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 Instrucciones
- Lee cada pregunta cuidadosamente
- Selecciona la mejor respuesta para cada pregunta
- Puedes repetir el quiz tantas veces como quieras
- Tu progreso se mostrará en la parte superior