Método main y system.out en Java

Icono play
Java
Método “main” y “system.out”

Hemos visto cientos de veces estas líneas de código, hoy vamos a hablar de ellas.

package com.example;
    public class Prueba {
        public static void main(String[] args) {
           System.out.println("Esto es una prueba!");
      }
    }

Método Main en Java

El método main en Java es el más importante en nuestro programa, ya que es el punto de entrada y salida de nuestra aplicación, tiene como tarea principal dirigir las llamadas a otras funciones y métodos en java, en esta porción de código se inicializa y finaliza el control de un programa. 

Por eso main debe ser publicstatic y debe declararse dentro de la clase que le da el nombre a nuestra aplicación, además es necesario que vaya acompañado del modificador public y las palabras reservadas en java static y void.

Por qué public, static y void en el método main de Java

Un método public indica disponibilidad global del método desde cualquier punto del programa, es un modificador de acceso, determina desde dónde y quién puede acceder a él.

Un método definido como static se puede ejecutar sin instanciar ninguna clase.

Al ser main lo primero que se ejecuta en un programa, es lógico que no tenga un objeto para instanciar, por eso debe ser static, también es lógico y necesario que pueda llamarse desde cualquier parte de nuestro código, por lo tanto debe ser public y a la vez al ser la primera sentencia que se ejecuta, no habrá valor para devolver y por eso es void.

Particularidades del método main en Java

El main tiene algunas particularidades como el hecho de que siempre recibe argumentos del tipo String y de ningún otro, si le pasamos un int, lo convertirá a un String.

¿Cómo se consigue esto?, utilizando el método valueOf() que convierte los datos recibidos desde su formato original a un string, empleando la sobrecarga de métodos.

Main al ser un método estático, también puede ser llamado desde otro método y no necesitamos crear un objeto para llamarlo, podemos llamarlo usando el nombre de la clase.

Cuando es llamado desde otro método, main crea un array con los parámetros y luego lo podemos recorrer y mostrar el contenido por medio de un bucle for, como se muestra en el siguiente ejemplo:

package com.example;

public class llamada {

   public static void main(String[] args) {// Este es el método que llama al otro main

//aqui abajo le pasamos los parámetros

       String[] losparametrosdelotro ={
               "Yo me llamo", "Pepito", "hice la suma de dos números, 5 y 15, cuyo resultado es: ", String.valueOf(15+5)};
               
       Main.main(losparametrosdelotro);//en esta linea se llama al metodo main original

   }

}

package com.example;//En este método, que es el original, recorremos el array y lo mostramos por pantalla

public class Main {

   public static void main(String[] args) {

       for (int i = 0; i< args.length; i++)
           System.out.println(args[i]);

   }

}

La salida de este proceso es la siguiente:

yo me llamo

Pepito

hice la suma de dos números, 5 y 15, cuyo resultado es:

20

Restricciones del método main en Java

El método main es bastante estricto, hay cosas que no podemos cambiar.

SIEMPRE

  • Debe tener las palabras claves static y void.
  • Debe estar el modificador de acceso como public.
  • Debe incluirse el parámetro dentro del paréntesis.
  • Debe estar declarado dentro de una clase superior (la clase que le da nombre a nuestra aplicación)

QUE PERMITE

  • Cambiar la ubicación de las palabras public y static.
  • Cambiar el String[] args declarado como array, por otro parámetro tipo String …[nombredelparametrovariable], los puntos definen qué se trata de un parámetro con un número variable de argumentos. 
  • Cambiar la palabra args, por cualquier otro nombre que queramos.

Clase System en Java

System.out.println() es la sentencia más utilizada para generar una salida de información por pantalla, está formada por la clase System + el método out + el método println.

La clase System, es una clase que pertenece al paquete java.lang y contiene varios métodos de entrada y salida de datos por pantalla y de salida de error, que nos permite trabajar con los canales de entrada/salida de nuestro dispositivo.

Proporciona un stream que es una especie de canal por donde fluyen los datos tanto de entrada a través del teclado, como de salida a través de la pantalla u otro dispositivo, es un enlace lógico que utiliza el programador.

Métodos estáticos de la clase System en Java

Esta clase posee tres métodos estáticos:

Standard Input Stream (System.in)

Se utiliza junto con la clase Scanner para ingresar datos por teclado o desde un archivo.

Ej: Scanner entrada=new Scanner(System.in);

Standard Output Stream (System.out)

Se utiliza junto a la función print para la salida de información por pantalla.

Ej: System.out.println(“Lo que queremos mostrar”);

Standard Error Stream (System.out)

Su uso se basa en mostrar por pantalla si hubo un error, también se utiliza junto a la función print.

Ej: System.err.println("Mensaje de Error "+e); e representa el error

Diferencia entre println y print

Con el método println el mensaje se muestra en pantalla y luego el cursor queda en el renglón siguiente.

En el caso del método print se muestra el mensaje y el cursor queda al final de la línea.

¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: