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: 






No hay comentarios:

Publicar un comentario