martes, 14 de junio de 2016

Capítulo 39 Parte 1. Java: Separar el código en módulos.


Diario de un programador día 83


Separar el trabajo en varios archivos.

Antes de seguir avanzando con las otras instrucciones de programación, voy a mencionar como se puede separar o dividir el código en varios archivos, lo que dará otro acercamiento a lo que la programación orientada a objetos.
Estuve leyendo que algo muy común el día de hoy es dividirse el trabajo de programación, así mientras unos programan una parte otros programan otra. Ya se me hacía raro que solo un programador escribiera miles de líneas de código él solo (quizás existan excepciones).
En java se pueden crear clases en distintos archivos y llamar a sus métodos cuando sea necesario. El proceso para llamar a un método de una clase que está en otro archivo diferente, es muy similar al proceso que se hizo para crear el objeto Scanner que se utilizó en las clases anteriores para solicitar datos del usuario.  
En este primer ejemplo, lo que se va a hacer es crear una clase principal. La clase principal es la que tendrá el método main. Esta clase será la encargada de llamar al método de otra clase que está en otro archivo. La otra clase tendrá un método bastante sencillo, que solamente mostrará un mensaje de bienvenida, este será el método llamado por la clase principal.

Para este ejemplo, voy a crear un proyecto nuevo, al que llamaré "Mensajes". Este proyecto tendrá dos clases, la clase "Principal" y la clase "Saludo".


Lo primero será trabajar en la clase "Saludo", como dije esta clase contendrá un método que mostrará un sencillo mensaje. Ojo que esta clase, no tiene ni debe tener un método main. El método main es exclusivo de la clase principal. Ahora, el código va así:

public class Saludo{
 
  public void mensaje(){
    System.out.println("Bienvenido a la programacion !!!");
  }//fin metodo mensaje
 
}//fin class

Y en imagen se ve así:


La parte destacada en gris es el método. Los métodos son como las subrutinas en Small Basic, esto para tener una idea de que se trata. La primera línea indica el nombre del método, en este caso se llama "mensaje", el método es de tipo "public" que sea public significa que su modo de acceso es público y su acceso estará permitido por otras clases. En otros cursos más adelante se estudiarán los modos de acceso, por ahora se dejarán como public. Otra palabra clave que tiene este método es void. Esto significa que es un método que no devuelve un resultado (en este caso solo muestra un resultado en pantalla pero no lo devuelve o retorna, más adelante se explicará con más detalle esto de los retornos). Los paréntesis vacíos () indican que este método no recibe parámetros o argumentos. Un argumento es como una opción que se le puede ingresar a un método. De igual forma se explicará esto con más detalle en su momento, así que por ahora se dejarán sin argumentos. Los métodos, al igual que las subrutinas, pueden contener muchas instrucciones. Por lo tanto, el bloque de instrucciones estará delimitado por las llaves  de apertura {y cierre}.
La siguiente línea System.out.println("Bienvenido a la programación!!!); es la única instrucción que tiene este método y es la que se ejecutará cuando éste sea llamado. Luego viene la llave de cierre} que marca el fin del método.
Este archivo, Saludo.java, se puede compilar, pero no ejecutar debido a que falta el método main, el cual será creado en la clase Principal.
Ahora se trabajará en la clase "Principal" y el código es el siguiente:

public class Principal{
  public static void main(String []args){
   
    Saludo llamar = new Saludo();
    llamar.mensaje();
   
  }//fin main
}//fin class

Y la imagen es la siguiente:


La zona marcada en gris es la encargada de llamar al método de la otra clase. La primera parte dice "Saludo", Saludo corresponde al nombre de la clase que se está llamando, por lo que el nombre de la clase va en este lugar. Lo siguiente es crear un objeto, en este caso el objeto tiene el nombre "llamar" pudo ser cualquier otro, pero yo quise darle ese nombre. El nombre de este objeto (llamar), es el que hará referencia a todos los métodos de la clase Saludo. Lo siguiente "= new Saludo()" es lo que instancia o crea el objeto.
La siguiente línea es la encargada de llamar al método que se necesita, utilizando el objeto creado. Para llamar al método, se escribe el nombre del objeto seguido de un punto y el nombre del método a utilizar, en este caso quedó como llamar.mensaje();
Si se ejecuta ahora el programa, entonces mostrará el mensaje de la otra clase.

Seguiré mirando un poco más. Ahora haré un método en la clase Saludo que contenga la palabra "estudiante" y la llamaré desde la clase principal, pero esta vez la insertaré dentro de la instrucción System.out.println(). Veamos cómo funciona. El método en la clase saludo se vería así:

  public void nombre(){
    System.out.println("estudiante");
  }//fin metodo mensaje
  
Y en imagen se vería así:


Entonces, en la clase Principal agrego lo siguiente:

    System.out.print("Buenas tardes ");
    llamar.nombre();

Y en imagen se ve así:


Si se ejecuta esto, entonces este sería el resultado:


Recordar que si se agrega una nueva clase se debe crear un nuevo objeto para esa clase y se podrá usar sin problemas sus métodos.
Espero se entienda. En la parte 2 hablaré de las estructuras repetitivas.

Gustavo J. Cerda Nilo
Enero 2016, última actualización Junio 2016



No hay comentarios:

Publicar un comentario

C++ El apuntador This

El apuntador This En C++, cada objeto tiene acceso a su propia dirección a través de un puntero o apuntador denominado This. Lo...