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: