martes, 29 de marzo de 2022

 


Capítulo Nº 2

 Su primer programa en Java


2.1. EL SEMPITERNO ¡HOLA MUNDO! 

Como se mencionó antes, hacer (desarrollar) un programa en Java significa construir una Clase o un conjunto de Clases que se relacionen entre sí. Para codificar el siempre eterno ¡Hola Mundo! en Java, se tiene que construir una Clase. En este caso sería una Clase definida por el usuario. 

NOTA:  Como el objetivo de este Curso Práctico de Java es brindarle al usuario una vía rápida para desarrollar una aplicación de escritorio sencilla, pero que al final obtenga un producto que se pueda ver, manejar, trabajar con menús, captura y procesamiento de datos, imprimir, etc., en fin desarrollar una aplicación de "verdad", no se abordarán fundamentos teóricos que bien están lo suficiente descritos en mucha bibliografía de Java. Claro está, en la medida que avance el curso, se explicará cada paso y el tema que corresponda.  

A continuación, se codificará el programa Hola Mundo, se explicará cada línea del código, se compilará y se ejecutará para ver por pantalla a nivel de consola. Como se describió en el capítulo anterior se utilizará el NotePad de Windows para codificar la Clase HolaMundo: 

 

///*** Programa ¡Hola Mundo!

public class HolaMundo

{

   ///*** El método "main" inicia la ejecución de la aplicación en Java

   public static void main(String args[])

   {

      System.out.println("¡Hola Mundo!");  

   }

   ///*** Fin del método "main"

}

///*** Fin de la clase "HolaMundo" 

 

Para ejecutar este programa, se debe abrir el NotePad de Windows y copiar/pegar el código. Luego guardar el archivo con el nombre HolaMundo.java. 

Como se explicó en el capítulo anterior, se debe trabajar en la carpeta Curso Práctico De Java y con el archivo Símbolo del sistema (cmd).bat, para trabajar a nivel de consola y llevar un orden en el curso.

 

2.1.1. Explicación de cada línea de código: 

1. La línea ///*** Programa ¡Hola Mundo! es un comentario en Java. 

Los comentarios en Java deben comenzar con / para que el compilador lo reconozca como tal. Queda de parte de cada usuario personalizar los comentarios. Para efecto de este curso los comentarios se resaltan en color púrpura y comienzan con ///***. 

2. La línea public class HolaMundo comienza la declaración de la clase. 

Los nombres de las clases en Java deben ir todo pegado sin espacios, no pueden comenzar con números, se debe respetar mayúsculas y minúsculas, y al guardar el archivo se debe guardar con el nombre de la clase, en este caso el archivo de texto (la clase misma) se debe guardar con el nombre HolaMundo.java. 

3. La línea public static void main(String args[])es el punto de inicio de toda aplicación en Java. 

El bloque que inicia con main( ) significa que es el método principal. En una declaración de clase en Java puede haber varios métodos, pero sólo un método principal. 

4. La línea System.out.println("¡Hola Mundo!");le indica a la computadora que realice una acción. 

En este caso que muestre por pantalla la frase entre comillas, en Java cada línea de instrucción debe terminar en ";". 

Las llaves {} indican el principio y final de un método en Java. La combinación de las llaves y las sangrías, ayudan a leer el código de manera más cómoda. 

 

2.1.2. Compilación del programa: 

Para compilar el programa se debe abrir la ventana de comandos usando el archivo Símbolo del sistema (cmd).bat, para facilitar las cosas. Si todo se hizo correctamente debemos ver por pantalla lo siguiente:

 



 

  Para descargar el capítulo completo pulse el botón DESCARGAR:

 




lunes, 21 de marzo de 2022

 


Capítulo Nº 1

 Presentación a Java


1.1. PRESENTACIÓN Y UTILIDAD DE JAVA

Java es un lenguaje de programación de alto nivel de propósito general, multiplataforma y orientado a objetos. Es de propósito general ya que sirve para implementar aplicaciones para PC, software para el funcionamiento de dispositivos electrónicos, aplicaciones web y más. Java es multiplataforma porque es independiente de la máquina y del Sistema Operativo lo que permite ejecutar un programa hecho en Java, por ejemplo, en una computadora con Linux o Windows, en una tableta, o en un teléfono móvil. Java es orientado a objetos porque la base fundamental para el desarrollo de aplicaciones en este entorno de programación es un elemento denominado clase (class). 

Para conseguir esto el código fuente se compila a un lenguaje que no es específico de la plataforma, sino que es un código intermedio denominado "bytecode". Este código no es ejecutado directamente, ya que no es comprendido por la máquina, sino que es interpretado por un programa denominado Máquina Virtual o más específicamente JVM (Java Virtual Machine/Máquina Virtual de Java). La JVM es específica de la plataforma. De esta forma para ejecutar un programa Java sólo se necesita la máquina virtual de la plataforma que se esté usando. Así por ejemplo, existen máquinas virtuales para Sistemas Operativos Windows, Linux, Apple y Android. 

Es un lenguaje de propósito general ya que con él se pueden hacer multitud de cosas: crear tanto programas simples de consola hasta grandes programas en entorno gráfico, hacer los applets que lucen en las páginas web, los servlets (programas cliente-servidor más potentes que los clásicos CGI), las JSP (Java Server Pages, similares a las páginas PHP o ASP), los sockets (programas para redes de ordenadores), etc. 

Es un lenguaje orientado a objeto ya que no es un lenguaje adaptado como C++ que desciende de C, sino que es un lenguaje que desde el principio ha sido de objetos: casi ó todo en él son objetos. Gracias a la orientación a objetos y la máquina virtual de Java es posible descargar un programa de la red en pocos segundos ya que los programas que se crean en Java, en general, se basan todos en las clases que incorpora la máquina virtual de Java (algo así como los archivos de librerías). Es decir, todos los archivos necesarios para que el programa funcione ya los incorpora la máquina de destino, los posee la JVM. De esta forma los programas en Java son robustos y potentes. 


1.2. TÓPICOS DE PROGRAMACIÓN ORIENTADA A OBJETOS (POO) 

En su definición formal La Programación Orientada a Objetos (POO u OOP según siglas en inglés) es un paradigma de programación que define los programas en términos de "clases de objetos", "objetos" que son entidades que combinan estado (es decir, datos), comportamiento (esto es, procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del resto). La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar. 

A partir de esta definición, un poco abstracta, trataremos en este curso de abordar estos conceptos de manera sencilla y con ejemplos para lograr el objetivo de desarrollar una aplicación de escritorio en Java. Comenzaremos por describir de manera informal dos elementos fundamentales para trabajar en Java, y que son la base de la Programación Orientada a Objetos, como El Objeto y La Clase. 


1.3. ¿QUÉ ES UN OBJETO? 

Los objetos en POO son o representan cosas, y pueden ser simples o complejos. Si hacemos una analogía con el mundo físico, un objeto puede ser una bicicleta, con un color, diseño y función específica. Y aún, si dos bicicletas son idénticas con el mismo color, diseño y función, estamos frente a dos objetos diferentes. Cada objeto, en este caso las bicicletas, sean del mismo color o no, se crean o provienen de un patrón común BICICLETA. Así como, por ejemplo, en un grupo de personas los integrantes José, María y Pablo serían OBJETOS provenientes de PERSONA. Si en una familia el padre de llama José y el hijo se llama José, los dos son dos OBJETOS diferentes provenientes de una instancia mayor PERSONA. 

En POO los objetos tienen valores o características (Atributos) que permiten definir su estado u otras cualidades. En la comparación que se hace con las bicicletas, estas tienen color, velocidad, marca, etc. Los objetos se comunican e interaccionan entre sí (Mensaje), pueden realizar acciones (Métodos), que en el caso de las bicicletas serían arrancar, cambiar, frenar o girar a la izquierda o la derecha. Los métodos pueden devolver un valor al terminar su ejecución (Valor de retorno). 

En Java, un objeto puede ser un botón, un formulario, una etiqueta, etc., que se crea a partir de un patrón prediseñado llamado Clase. Por ejemplo: 

JLabel EtiquetaDireccion = new JLabel("Dirección :"); 

En esta línea de código se crea el objeto "EtiquetaDireccion", que es una etiqueta formada a partir de la clase "JLabel".


1.4. ¿QUÉ ES UNA CLASE? 

De manera informal una Clase es como una plantilla o patrón para crear un tipo particular de objeto. Objeto con diversas características. Cada clase tiene asociado un código, que determina los atributos, métodos y cómo se van a ejecutar los objetos de esta clase y cómo lo hacen. La Programación orientada a objetos consiste en escribir código de clases, programar librería de clases, que sería algo similar a las librerías DLL. 

Volviendo al caso del ejemplo de la etiqueta. La clase JLabel nos permite crear objetos etiquetas, tantos como queramos, por ejemplo: 

JLabel EtiquetaNombre = new JLabel("Nombre :");

JLabel EtiquetaDireccion = new JLabel("Dirección :");

JLabel EtiquetaTelefono = new JLabel("Teléfono :"); 

… y así sucesivamente 

Una representación gráfica (UML), de una Clase y Objetos sería la siguiente:


 

 


 Viéndolo de otro modo:

 



1.5. CARACTERÍSTICAS DE LA POO 

Algunas definiciones formales de la POO: 

Abstracción: cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. 

Encapsulamiento: cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que específica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. 

Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. 

Herencia: las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que reimplementar su comportamiento. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles que reflejan un comportamiento común. 


1.6. ACERCA DE JAVA, LA CLASE Y EL OBJETO 

Cuando se programa en Java, ya sea para construir una librería de clases para ser usada por terceros, para desarrollar una aplicación de escritorio, una app para móviles, etc., siempre se define una clase. En el caso de este Curso Práctico de Java, tanto la interfaz de captura de datos, la conexión con la base de datos y los procesos con requisitos, se definirán a través de la construcción de Clases. 

Desarrollar un programa en Java, por más sencillo y complejo que sea, requiere codificar Clases e instanciar éstas en Objetos. Una clase en Java está formada por tres elementos principales: un nombre único que las diferencie de las otras clases, los atributos que representan alguna propiedad de la clase y que se encuentra en todas las instancias de la clase y los métodos que son la implementación de un servicio de la clase, muestran un comportamiento común a todos los objetos. En resumen es una función que le indica a las instancias de la clase que hacer. La sintaxis típica de una clase en Java es: 


//Inicio de la clase

class NombreClase

{

   //Lista de atributos  

   atributo_1;    

   atributo_2;

   ...;

   // Función principal

   public static void main(String args[])

   {

      ...;

   }

   // Fin función principal

 

   // Métodos

   public void método1()

   {

      ...;

   }

   public void método2()

   {

      ...;

   }

}

//Fin de la clase 


Las clases en Java se codifican utilizando cualquier editor de texto como el NotePad de Windows, u otro de su preferencia. Luego de codificar una clase en Java, se necesita compilarla y ejecutarla para poder ver los resultados por pantalla, según sea el caso. Las clases creadas para Java (archivo de texto) se deben guardar con el nombre de la clase y con la extensión (.java). Por ejemplo, si se creó una clase llamada MiPrograma, el archivo de texto donde se definió esta clase se debe guardar como MiPrograma.java. 


1.7. QUÉ SE NECESITA PARA TRABAJAR CON JAVA 

Para desarrollar, compilar y ejecutar las clases (archivos con extensión *.java) es necesario instalar Java Development Kit (kit de desarrollo de Java) o JDK, hoy propiedad de ORACLE. El jdk tiene diferentes versiones, identificadas por una secuencia de números x.y.z. Para el desarrollo de la aplicación de este Curso Práctico, se puede instalar cualquier versión de Java. En este caso se utilizará Java JDK SE Development Kit 7 Update 15 (Java Versión 7.0) por cuestiones prácticas. Java JDK Standard Edition es una herramienta de uso libre que se puede descargar del sitio web de ORACLE. Cabe destacar que es recomendable instalar el JDK que incluye, además de las herramientas para desarrollar en Java, el JRE (Java Runtime Environment) y la JVM (Java Virtual Machine). 

NOTA: En este curso se utilizará Java JDK 1.7.0.150 (x86) para Windows por las siguientes razones: 

1.- El JDK 1.7.0.150 es una versión de uso libre. 

2.- Hasta la versión 7, Java incorporó el driver JDBC para conectar con base de datos Microsoft Access (*.mdb), que es la que usa la aplicación a desarrollar en este curso. 

3.- Hasta la elaboración de este curso ORACLE lanzó la versión Java JDK17, que es la última versión. La aplicación puede desarrollarse y ejecutarse perfectamente en esta versión, sólo que se necesita de aplicaciones de terceros para conectar con JDBC Microsoft Access, como UCanAccess 5.0.1.


1.7.1. Instalación del JDK 

Aunque se pueden tener instaladas en el PC diferentes versiones de Java, y trabajar con cualquiera de ellas. En este caso, para la instalación del JDK SE Development Kit 7 Update 15, Se debe desinstalar cualquier versión de Java del equipo y limpiar las variables de entorno que tengan que ver con Java. Para instalar el JDK, se ejecuta el programa de instalación del JDK: jdk-7u15-windows-i586.exe. 

Este archivo se puede descargar del sitio web oficial de ORACLE. 

También del siguiente link: jdk-7u15-windows-i586. 


Para descargar el capítulo completo pulse el botón DESCARGAR: 






lunes, 14 de marzo de 2022












Introducción

Ya es mucha la bibliografía que hace referencia a Java. Libros, cursos y tutoriales muy completos, que definen todo acerca de este Entorno de Programación. Es bien conocido, para los que han tenido la oportunidad de estudiar y ensayar con este lenguaje de programación, que Java está enfocado en el desarrollo de aplicaciones para electrodomésticos, smartphones, televisores, computadoras, tabletas... en fin, como se aprecia en la descripción de la página web de ORACLE, son millones de dispositivos móviles y de escritorio que hacen uso de este lenguaje de programación para su funcionamiento.

Java es un lenguaje amigable, orientado a objetos. Es un lenguaje independiente de la plataforma o sistema operativo, por lo que un programa desarrollado en Java se ejecutará (en teoría, sin ningún problema) igual en un PC con Windows que en una tableta con Android o dispositivo Mac. Como lo plantearon sus creadores al inicio: codificar la aplicación una vez y ejecutarla en cualquier sistema operativo

Este curso pretende servir como material de instrucción a estudiantes y profesionales que se inician, o ya han tenido cierta experiencia en el mundo JAVA. A diferencia de otros cursos o tutoriales, este Curso Práctico de Java pretende ir un poco más allá de los fundamentos teóricos y ejercicios, y guiar al lector a desarrollar una verdadera aplicación de escritorio en Java. En este caso una aplicación sencilla pero completa, donde se aprenda a diseñar una interfaz para captar los datos, conectar y manejar una base de datos, codificar algoritmos con los típicos procesos de añadir, editar y eliminar registros, rutinas para imprimir, etc.

La aplicación que se pretende desarrollar con este curso fue parte del Trabajo de Grado: IMPLEMENTACIÓN DE REQUISITOS NO FUNCIONALES A TRAVÉS DE LA PROGRAMACIÓN ORIENTADA A ASPECTOS. Aplicación que sirvió de base, para demostrar que se pueden implementar requisitos no funcionales en un sistema de software (Aplicación), haciendo uso de este nuevo paradigma (POA).

El objetivo de este curso es acondicionar al practicante en el uso de las herramientas básicas de programación en Java, y proporcionarles los recursos y habilidades necesarias para poder adaptar las ventajas de este lenguaje a su área específica de trabajo.