Apuntes de Java: Imprimir textos en consola

Últimamente no he podido –y no hemos podido- postear debido a múltiples ocupaciones más el insomnio y algunos otros eventos, pero quise hacerme un tiempito para que no se pierda esta sección que hace unos pocos días empecé acerca de este lenguaje de Programación llamado Java.

Luego del anterior post de Apuntes de Java y siguiendo esta línea, hoy enseñaré como es que lucen (y como se hacen) los primeros programas que uno debe hacer para aprender Java y algunas que otras explicaciones breves de las que espero tengan conocimiento si es que previo a esto no lo sabían o están empezando con Java.

Les ruego la corrección inmediata si es que se me pasa por la cabeza la rata de la fe (la que produce fe de erratas) así los que lleguen luego aprenderán mejor.

Nota: El software usado será el editor de textos TextPad bajo Windows XP con el compilador Java 1.6.0_15-b03.

Comencemos:

Como definir una clase.- Para definir una clase en Java (véase POO), lo que debemos hacer es algo como esto.

public class MiClase{
   //Contenido de la clase (métodos, variables, y funcionamiento en general)
}

Se coloca public porque estamos definiendo la clase con un control de acceso, “public” hace que la clase pueda ser usada por cualquier clase en cualquier paquete, pero existen también otros tipos de restricciones como “private” (sólo se puede acceder al elemento desde métodos de la clase, o sólo puede invocarse el método desde otro método de la clase) y “protected” (acceso público para las clases derivadas y acceso privado para el resto de clases, algo así como una combinación de las dos anteriores.). Además de eso se puede obviar estos modificadores del control de acceso y dejarlo sin modificador, lo que hará que la clase pueda ser accedida desde cualquier clase del paquete donde se define la clase.

Colocamos “class” para definir en esa línea que la clase se llamará “MiClase” y como lo dije en el post previo de Apuntes de java, el archivo en donde estamos programando esto, debe tener el mismo nombre de la clase, por lo tanto el archivo en cuestión deberá llamarse MiClase.java . Pero, qué pasa si no hacemos esto?, pues nos da un output como este:

Bueno, como en la mayoría de lenguajes de programación, para definir bloques de código en Java debemos usar las llaves {}.

Como imprimir algo en consola.- Para imprimir algo en una consola cualquiera desde Java, lo que debemos hacer es usar el método println o print. Es sencillo, pero para esto debemos usar ese método dentro de la definición de otro método llamado main. De la siguiente manera:

public clase MiClase{
  public static void main(String[]args){
      System.out.println("Imprimiendo algo!!!");
  }
} 

Explicando el código:

El modificador static.- Según entiendo, la palabra static hace que podamos usar métodos de una clase sin instanciar ningún objeto de dicha clase, aún no me queda del todo claro, lo veremos en otro post de Apuntes de Java donde trate sólo de los modificadores cuando investigue más a fondo.

El tipo de dato void.- Cada función en java por teoría retorna algo, alguna variable o salida que queda especificada en base a lo que hace esa función, dicho de otra forma, cada función de java tiene una salida, y dicha salida tiene una función, en este caso void hace referencia a un tipo de salida especial, a la salida vacía. Yo pensé que cuando se declaraba X función con un tipo de salida void, la función no tiene salida, pero lo que pasa es que la salida es vacía, y esto obviamente influye más en accesos de memoria que en nuestra propia compresión. Toda función tiene tipos de salidas en base a sus tipos de dato primitivo (int, double, String, char, float, etc) o en clases personalizadas. Y en este caso, la función main tiene un valor de salida vacío, aunque visto de otra forma es una función ya declarada que se usa para definir lo que va a hacer el programa o la clase en primera prioridad, y que difícilmente tendría algún tipo de dato primitivo como valor de salida.

El parámetro String[]args (un arreglo del tipo String).- Este tema podría incluso producir un post entero (prometo que lo haré), así que sólo daré la explicación que me dieron a mí, es el parámetro que se le pasa al main y que define a los argumentos a modo de lista de registro de cada cosa que se ponga como declaración (por eso es un array).

System.out.println(<Una variable String, o el propio String explícitamente>); .- Esta línea mis queridos amigos, es lo que hace que podamos imprimir algo vía consola, lo que hará es nada más que imprimir lo que está pasado como parámetro en tal método, que en el ejemplo es “Imprimiendo algo!!!”, de momento no necesitamos saber cómo y por qué es que funcionan la clase System y la definición out. Y de println, pues es el método en sí que ya está definido en los paquetes principales de Java y que hace que algo se imprima vía consola, puede ser de dos tipos, println (hace que al final de la impresión halla   automáticamente un salto de línea en la consola) o print (sólo se limita a imprimir en consola sin salto de línea).

Nuestro resultado al compilar y ejecutar dicha clase será algo como esto:

Obviamente podremos ejecutar infinidad de veces el método println dentro del método main y  podemos acomodar texto mediante modificadores especiales como “\n” (salto de línea), “\t” (retorno de carro), entre otros.

Por ejemplo, la siguiente consola:

Es producida por el siguiente código:

public class MiClase{
   public static void main(String[]args){
     System.out.println("Estoy usando el metodo println");
     System.out.println("para un post del blog");
     System.out.println("IFX Informatrix");
     System.out.println("Esto es parte de los Apuntes de Java");
   }
} 

O también por este otro:

public class MiClase{
   public static void main(String[]args){
     System.out.println("Estoy usando el metodo println\npara un post del blog\nIFX Informatrix\nEsto es parte de los Apuntes de Java");
   }
} 

Espero les haya servido este post, y espero además seguir con esta sección, hoy han aprendido como imprimir cadenas sencillas en consola en Java.

Saludos!!!