viernes, 5 de mayo de 2017

Introducción al lenguaje de programación en java

Java fue creado en 1991 por Sun Microsystems con el fin de elaborar un lenguaje de programación destinado a electrodomésticos.

Debido a la existencia de distintos tipos de procesadores y a los continuos cambios, se generó la necesidad de hacer una herramienta independiente de la clase de procesador. Entonces, Sun Microsystems creó una aplicación neutra que no dependía del tipo de electrodoméstico. Esta aplicación se ejecutaba a través de una máquina hipotética o virtual denominada “Java Virtual Machine, JVM” o máquina virtual de Java. La JVM interpretaba el código neutro Convirtiéndolo a código ensamblador que podía ser interpretado por el procesador utilizado.

A finales de 1995, Java fue introducido como lenguaje de programación para computadoras. La versión java 1.1, apareció a principios de 1997 mejorando sustancialmente la versión original del lenguaje. La versión java 1.2, aparece más tarde y fue renombrada a Java 2, a finales de 1998. La versión Java 1.5 se presenta en 2005, después sale la versión Java SE 6 (11 de diciembre de 2006), de allí Java SE 7, después Java SE 8 (lanzada en marzo de 2014), y por último el más reciente Java SE 9 (lanzada el 23 de Marzo del 2017).

Al desarrollar en Java, cualquier aplicación, se cuenta con un gran número de clases que hacen parte del lenguaje de Java conocido como “API o Application Programming Interface”. El API de Java se organiza por paquetes que hacen referencia a contenedores de clases.

La funcionalidad de cada concepto lo proveen las respectivas clases
Java incorpora en el propio lenguaje muchos aspectos. Por tal motivo, gran parte de la comunidad académica opina que Java es el lenguaje ideal para aprender la informática moderna, porque incorpora todos estos conceptos de un modo estándar, mucho más sencillo y claro. Esto es consecuencia de haber sido diseñado más recientemente y por un único equipo de desarrollo.

El principal objetivo del lenguaje Java es convertirse en el lenguaje universal de desarrollo. Java es un lenguaje muy completo. Java 1.0 tenía 12 paquetes, Java 1.1 tenía 23 paquetes y Java 1.2 tenía 59 paquetes. Para el 2010, la versión Java 1.6 cuenta con 203 paquetes y 3.793 clases, lo que indica la gran potencial del lenguaje.

Las aplicaciones desarrolladas en Java presentan diversas ventajas

La ejecución de programas en Java tiene muchas posibilidades: ejecución como aplicación independiente denominada "Stand-alone Application" o aplicación de escritorio, ejecución como "applet", la cual es una aplicación especial que se ejecuta dentro de un navegador de Internet, ejecución como "servlet", el cual permite proveer servicios a aplicaciones web y se ejecuta siempre en un servidor de Internet.

miércoles, 3 de mayo de 2017

Que es una Interfaz en Java

¿Qué es Interfaz?
Como interfaz designamos, en informática, la conexión física y funcional que se establece entre dos aparatos, dispositivos o sistemas que funcionan independientemente uno del otro. En este sentido, la comunicación entre un ser humano y una computadora se realiza por medio de una interfaz.

La palabra interfaz, como tal, proviene del inglés interface, que significa ‘superficie de contacto’.

La interfaz es el mecanismo o herramienta que posibilita esta comunicación mediante la representación de un conjunto de objetos, iconos y elementos gráficos que vienen a funcionar como metáforas o símbolos de las acciones o tareas que el usuario puede realizar en la computadora. Por ejemplo, introducir datos en una hoja en blanco, enviar un documento a la papelera, modificar un archivo, cerrar un programa.

En computación, existen básicamente dos tipos de interfaces:
  • La interfaz física: constituida por objetos que nos permiten introducir datos y manipular la computadora, como el ratón o el teclado, que vendrían a funcionar como prótesis o extensiones de nuestro cuerpo.
  • La interfaz gráfica: también conocida como GUI (Graphic User Interface), que permite al ser humano interactuar con el computador mediante una serie de elementos gráficos (ventanas, iconos, entre otros).


Interfaz de usuario
Como interfaz de usuario se designa el medio del que se vale una persona para comunicarse con una máquina, dispositivo o computadora. Suelen ser amigables e intuitivos, por lo que son fáciles de entender y utilizar para un usuario. Comprende elementos como los menús, ventanas, teclado, ratón, sonidos de alerta, es decir, todos aquellos canales por medio de los cuales se establece una comunicación efectiva entre el ser humano y la máquina.

Interfaz gráfica de usuario
Como interfaz gráfica de usuario, también conocida como GUI (según las siglas en inglés de Graphic User Interface), se conoce el programa informático que emplea un conjunto de imágenes y objetos en un entorno gráfico de simulación para representar todas las acciones disponibles para el usuario en la interfaz. A este sistema se lo denomina WYSIWYG (What You See Is What You Get, es decir: “lo que ves es lo que obtienes”).
La finalidad de la interfaz gráfica de usuario es ofrecer a las personas un entorno visual amigable e intuitivo que les facilite la comunicación con el sistema operativo, la máquina o la computadora. Ejemplos de interfaces gráficas de usuario serían los entornos de escritorio de sistemas operativos como Windows, GNU/Linux o Mac OS.

Para explicar el concepto de interface nos valdremos de un ejemplo: 
Supongamos que al crear un programa creamos una ciudad. Para crear la ciudad no partimos de cero: disponemos de edificios prefabricados (las clases del API de Java). Pero también disponemos de algo más: de normas de urbanismo ya definidas (las interfaces del API de Java). Cada norma vamos a decir que es una interface: nos dice qué debemos cumplir para que al construir un edificio (clase) se pueda calificar con un nombre determinado. Supongamos una norma denominada “Edificio a dos aguas”, cuyo contenido incluye:
  • El edificio habrá de tener cuatro paredes.
  • El edificio habrá de tener un tejado formado por dos planos.
  • Otras especificaciones.


Si al construir un edificio se cumplen las condiciones de las normas de urbanismo, el ayuntamiento nos permite que en la publicidad y escrituras del edificio conste que se trata de un edificio a dos aguas. Si no cumplimos las especificaciones, no podemos usar esa denominación. Por ejemplo, estaría prohibido que un edificio con forma de pentágono y cinco paredes se denominara “Edificio a dos aguas”. Por el contrario, sería posible denominar edificio a dos aguas a una capilla que cumpla la norma, también a una vivienda unifamiliar que la cumpla, o a una biblioteca que la cumpla. 

Ahora bien lo trasladamos a Java. Consideremos la interface “List” que equivale a nuestra norma, cuyo contenido incluye:
  • La clase habrá de tener un método cuya signatura sea get(int index) que devuelva el objeto de la lista en la posición especificada por el entero index.
  • La clase habrá de tener un método cuya signatura sea isEmpty() que devuelva un valor booleano true si la lista no contiene objetos o false en caso contrario.
  • Otras especificaciones. 



Si una clase cumple y declara que cumple las especificaciones de la interfaz, decimos que esa clase implementa la interfaz. Si no cumple las especificaciones, no la implementa. Para implementar la interfaz la clase ha de incluir todos los métodos que defina la interfaz. Por ejemplo, una clase que no incluya el método get(int index) no cumplirá la especificación y por tanto no podrá decirse que implemente la interfaz List. 

Veamos ahora cómo empieza la documentación de esta interface del API de Java:

java.util
Interface List<E>

All Superinterfaces:

Collection<E>, Iterable<E>

All Known Implementing Classes:

AbstractList, AbstractSequentialList, ArrayList, AttributeList, LinkedList, RoleList, Stack, Vector

Una interface puede tener “normas” superiores, a las que denominamos “Superinterfaces”, y “normas” inferiores, a las que denominamos “Subinterfaces”, de acuerdo con una jerarquía. A su vez, una interface puede tener clases que la implementan. Por ejemplo en el caso de List, esta interface está implementada por las clases ArrayList, LinkedList, Stack y otras. Todas las clases que implementan una interface podemos decir que tienen algo en común. De esta manera, todas las clases del API de Java están organizadas.